15. januar 2009 - 11:55Der er
9 kommentarer og 1 løsning
Cond formattering med formel og værdi blandet
Hejsa.
Jeg er ved at lave et script til Excel 2000. En celle skal formatteres conditional således at hvis det er større end cellen ved siden af, så skal det være grønt, hvis det er mindre end cellen ved siden af, så skal det være rødt, og hvis det selv indeholder en streng med en bindestreg (-), så skal det være gul baggrund. Jeg kan godt lave rød og grøn, men kan ikke lige få formlen til at passe.
Eks: a1 = 3, b1 = 0, a1 skal være grøn a1 = 3, b1 = 6, a1 skal være rød a1 = 3-3, b1 = (ukendt), a1 skal være gul
Kan nogen hjælpe med et VB-skript til at klare det ?
Placer markøren i den celle, der skal testes inden du afspiller. Og så skal det sidste tal være 6, ikke 4. Sub BetForm() If Selection.Value > Selection.Offset(0, 1) Then Selection.Interior.ColorIndex = 4 ElseIf Selection.Value < Selection.Offset(0, 1) Then Selection.Interior.ColorIndex = 3 ElseIf InStr(Selection.Value, "-") <> 0 Then Selection.Interior.ColorIndex = 6 End If
Problemet er at jeg benytter ooRexx til at danne mine formler i regnearket. Det er det samme som at bygge et VB-script. Kaldene ser bare lidt anderledes ud.
Det jeg søger er et script til at oprette en conditional format-betingelse, som går på om feltet indeholder en bindestreg eller ikke. Jeg skal altså kunne sætte min conditional format fra mit VB-script, men regnearket skal være uafhængigt af scriptet, når først scriptet virker. Scriptet skal køre een gang, og ikke mere. Når det er kørt, virker regnearket som det skal, og uden scripts.
Jeg skal lave individuelle formler og formater for over 500 felter i flere forskellige ark, så derfor denne approach. I det færdige ark er der ingen scripts, der kører, det hele er sat ved hjælp af funktioner, herunder betingede formattering.
Og problemet ligger først og fremmest i at få den rigtige formel lavet. Når jeg kender den, kan jeg bare lave en makro, så kender jeg jo det, der skal ind i min Rexx.
Du skal oprette tre betingelser på cellen. Den første skal være Celleværdig er lig med "-" Her er formateringen gul. Den næste er Formlen er =a1>b1 Her er formateringen Grøn. Den sidste er Formlen er =a1<b1 HEr er formateringen Rød.
Lige en ting mere, der kræver uddybning. Cellen indeholder enten en streng, hvoraf eet af tegnene er en bindestreg. Ellers indeholder det et tal, som skal sammenlignes med tallet i en anden celle. Det indeholder altså ikke kun en bindestreg, men f.eks. strengen 7-5.
Det er den condition, der skal sættes op, for at fange bindestregen, jeg har svært ved at sætte rigtigt op i Excel. Det andet har jeg løst, på samme måde som jkrons beskriver ovenfor. Når jeg kan det i ordinær Excel, kan jeg nemt få lavet det til VBA, ved at optage en makro.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.