26. marts 2004 - 14:23Der er
19 kommentarer og 1 løsning
betingen formatering som macro formel?
Jeg ville høre om der er nogen der ved hvordan man skriver en betingen formatering ind som macro-formel, det den hel præsist skal gøre, er at hvis der der står #N/A i en celle, skal den lave en betinget formatering, med skriftfarven hvid.
Det er fordi jeg lavet 4 macros men en masse foruddefineret formler i og når jeg aktivere dem, sletter de den betinget formatering, så jeg ville gerne have den ind i, eller en måde til at omgå macroen.
Nu får jeg en ny Compile error, hele tiden i den forgående linie, uanset hvor jeg pladsere koden, her er hvad den siger: Expected End Sub, siger det dig noget?
Mvh André
Synes godt om
Slettet bruger
26. marts 2004 - 22:01#8
Når du bruger makroen, skal du: 1. Markere cellerne 2. Aktivere makroen
Koden burde se sådan ud nu:
----------------------- Sub genskabBetingetFormater()
' Indsætter ny betinget formatering baseret på formel Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=IF(ISNA($E$6:$E$74);TRUE;FALSE)"
' Font farve sættes til 2 (hvid) hvis betingelse er opfyldt Selection.FormatConditions(1).Font.ColorIndex = 2
End Sub
Men det vil stadig ikke virke, der skulle ikke være noget andet i min macro, der kunne gå ind og påvirke formlen, da næsten hele macroen er disabled lige nu, med undtagelse af en kode der henviser til et andet ark, hvad kan jeg lave forkert?
Mvh André
Synes godt om
Slettet bruger
26. marts 2004 - 22:50#12
Lad mig lige se om jeg har forstået spørgsmålet.
Du vil gerne markere et område, og derefter genskabe de betingede formateringer. Men du vil kun have hvid skrift de i de celler der har værdien "#N/A". Er det korrekt ?
Er det de samme celler der skal genskabes hver gang ?
Jeg har en formel der ser sådan her ud: =IF(B39<>"";E38+B39-C39;#N/A), Den køre fra E6:E74, det jeg så vil have er at når formlens resultat er = #N/A i cellen, så skal din formel gå ind og lave en betingede formatering i den pågældende celle, ellers ikke, den skal ikke genskabe den betingede formatering, for den findes ikke i forvejen, kun skabe den. Håber jeg har gjort mig forstålig.
Nu har jeg så fået din formel til at virke, alle andre steder end lige der hvor den skal *dohh* Er der noget i min formel, der modvirker din?? Men nu går jeg i seng, håber at se dig herinde imorgen igen, men du skal nok få point, men det bliver når jeg er stået op.
Mvh André
Synes godt om
Slettet bruger
26. marts 2004 - 23:30#15
Prøv med:
---------- For Each c In Range("E6:E74") If Application.WorksheetFunction.IsNA(c.Value) Then c.Font.ColorIndex = 2 End If Next c ----------
Nu virker din formel, så i mit ark, hvor den skal, men der er bare det lille problem nu, at den virker på hele min formel, hvad enten resutatet er #N/A eller et tal resultat, har du et forslag til at rette det?
Mvh André
Synes godt om
Slettet bruger
27. marts 2004 - 13:06#17
Kan du prøve at ændre din formel fra: =IF(B39<>"";E38+B39-C39;#N/A)
til
=IF(B39<>"";E38+B39-C39;NA())
og se om ikke det hjælper.
NA() funktionen returnerer fejlværdien #N/A.
Synes godt om
Slettet bruger
27. marts 2004 - 15:49#18
En alternativ makro:
-------------------------------- Sub BetingetFormater()
For Each c In Range("E6:E74") With c .FormatConditions.Delete .FormatConditions.Add Type:=xlExpression, Formula1:="=IF(ISNA(" + c.Address + ");TRUE;FALSE)" .FormatConditions(1).Font.ColorIndex = 2 End With Next c
Nu virker det hele som det skal. 60 point er på vej i din retning, endnu engang mange tak.
Mvh André
Synes godt om
Slettet bruger
28. marts 2004 - 18:18#20
OK, tak for point :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.