[ Svako @ 04.07.2013. 11:25 ] @
Dobar dan, pravim neku tabelu u kojoj zelim da uporedim karakteristike razlicitih stampaca. Sto se tice naslova, modeli stampaca su mi u prvom redu, a karakteristike u prvoj koloni. E sad, da bi lakse bilo uociti prednosti i mane svakog od modela, htio sam da u svakom redu (koji odgovara odredjenoj karakteristici) ofarbam celije na taj nacin da vrijednosti koje su pozitivne budu recimo zelene, a kako se ide ka losijim da budu recimo sve crvenije. Problem je u tome sto je za neke karakteristike bolje da je vrijdnost sto veca (na primjer koliko strana u minuti stampa, ili kolicina memorije), a za neke druge (na primjer potrosnja energije, ili vrijeme za koje izbaci prvu stranu) bolje je da je vrijednost sto manja. OK, mogu i da za te posljednje koristim inverznu vrijednost, pa da sve formatiram na isti nacin, ali umjesto toga, dodao sam kolonu u koju sam stavio jedinice i nule u zavisnosti od toga da li treba "ozeleniti" velike ili male vrijednosti. Pokusao sam da napravim VB script, ali se nisam bas proslavio. Evo mog neslavnog pokusaja: Code: Sub Formatiranje() ' ' Ako u prvoj koloni doticnog reda imam jedinicu, onda taj red formatiram na taj nacin da su mi vece vrijednosti u tom redu zelene, a iduci ka nizim vrijednostima u istom redu, celije postaju sve vise zute (ili crvene, ili stagod) ' Sa druge strane, ako u prvoj koloni doticnog reda imam nulu, onda hocu da mi formatiranje bude obrnuto; to jest da mi oboji u zeleno one celije u tom redu koje imaju niske vrijednosti, a u zuto (ili crveno) one koje imaju visoke vrijednosti ' Dim prvaCelija As Range Dim zadnjaCelija As Range Dim radniRed As Range Dim testCelija As Range Dim iter As Double For iter = 4 To 70 Set prvaCelija = "C" & iter Set zadnjaCelija = "G" & iter Set radniRed = Range(prvaCelija, zadnjaCelija) Set testCelija = "A" & iter If testCelija.Value = 1 Then radniRed.Select Selection.FormatConditions.AddColorScale ColorScaleType:=2 Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _ xlConditionValueLowestValue With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor .Color = 10285055 .TintAndShade = 0 End With Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _ xlConditionValueHighestValue With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor .Color = 8109667 .TintAndShade = 0 End With ElseIf testCelija.Value = 0 Then Selection.FormatConditions.AddColorScale ColorScaleType:=2 Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _ xlConditionValueLowestValue With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor .Color = 8109667 .TintAndShade = 0 End With Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _ xlConditionValueHighestValue With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor .Color = 10285055 .TintAndShade = 0 End With End If Next iter End Sub Unaprijed hvala za bilo kakav savjet! |