Anzeige
Archiv - Navigation
1916to1920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA bedingte Formatierung mit Formel

VBA bedingte Formatierung mit Formel
31.01.2023 20:55:51
Gula
Hallo zusammen,
ich komme einfach nicht weiter und finde den Fehler nicht.
Ich habe in Excel VBA einen Code erstellt, welches beim Speichern ausgeführt werden soll. Soweit so gut. Unter anderem soll auch die bedingte Formatierung neu gesetzt werden.
Das funktioniert auch fast ohne Probleme, denn mit einer der Formeln funktioniert es nicht und ich erhalte den Fehler "Laufzeitfehler '5': Ungültiger Prozeduraufruf oder ungültiges Argument". Der Fehler liegt in der 4. Formel =UND(MONAT(HEUTE());K5>""), die eingefügt werden soll. Lösche ich diese Formel und die dazugehörigen Zeilen aus meinem Code, funktioniert alles einwandfrei.
Die nicht funktionierende Formel soll mir die Zellen markieren, wo ein Datum steht, welches eines aus dem aktuellen Monat beinhaltet, gleichzeitig aber die leeren Zellen nicht einfärben.
Wenn ich diese Formel in der bedingten Formatierung bei Excel eingebe, dann funktioniert sie auch, aber per VBA, kommt der o.g. Fehler.
Was mache ich falsch? Danke schon mal für die Unterstützung.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.ScreenUpdating = False
Dim rg3 As Range
Set rg3 = Range("K5, L5, K8, L8, K11, L11, K14, L14, K17, L17, K20, L20")
rg3.FormatConditions.Delete
rg3.NumberFormat = "MMM YY"
    With rg3
        'Farbe rot unter 30 Tagen
        .FormatConditions.Add Type:=xlExpression, Formula1:="=(K5>HEUTE())*(K5=HEUTE()+30)"
        .FormatConditions(1).Interior.Color = RGB(248, 105, 107)
        'Farbe gelb unter 180 Tagen
        .FormatConditions.Add Type:=xlExpression, Formula1:="=(K5>HEUTE())*(K5=HEUTE()+180)"
        .FormatConditions(2).Interior.Color = RGB(255, 235, 132)
        'Farbe grün unter 1000 Tagen
        .FormatConditions.Add Type:=xlExpression, Formula1:="=(K5>HEUTE())*(K5=HEUTE()+1000)"
        .FormatConditions(3).Interior.Color = RGB(99, 190, 123)
        'Farbe rot für aktuellen Monat
        .FormatConditions.Add Type:=xlExpression, Formula1:="=UND(MONAT(HEUTE());K5>"")"
        .FormatConditions(4).Interior.Color = RGB(248, 105, 107)
        'Farbe hellblau für leere Zellen
        .FormatConditions.Add Type:=xlExpression, Formula1:="=ISTLEER(K17)=WAHR"
        .FormatConditions(5).Interior.Color = RGB(221, 235, 247)
    End With
    Set rg3 = Nothing
    Application.ScreenUpdating = False
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA bedingte Formatierung mit Formel
31.01.2023 21:00:50
GerdL
Hallo Gula,
womit wolltest Du bei 4. Heute() eigentlich vergleichen?
AW: VBA bedingte Formatierung mit Formel
31.01.2023 21:06:13
Gula
Hallo GerdL,
das heutige Datum wollte ich mit dem Datum in K5 vergleichen. Liegt das Datum in K5 im aktuellen Monat, dann soll die bedingte Formatierung die Zelle färben.
Bzw. soll sich die Formatierung dann auf die anderen Zellen, wie in der Range angegeben, fortsetzen.
Das komische ist ja, dass es direkt in Excel mit der Formel funktioniert, aber nicht, wenn ich diese per VBA übertragen möchte.
Gruß
AW: VBA bedingte Formatierung mit Formel
31.01.2023 21:24:09
GerdL
Hallo Gula,
etwa so?
:="K5-TAG(K5)=HEUTE()-TAG(HEUTE())"
Gruß Gerd
AW: VBA bedingte Formatierung mit Formel
31.01.2023 21:36:52
Gula
Perfekt Gerd, vielen lieben Dank. So funktioniert es nun. Fehlte nur noch ein = vor dem ersten K5 ;)
Aber warum funktionierte die von mir in VBA nicht, aber in Excel selber schon?
Grüße
Anzeige

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige