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