Bedingte Formatierung auf Datenabfrage
22.03.2025 12:54:39
Gerhard K.
vorab, vielen Dank für dieses tolle Forum, ich habe hier schon soo viele tolle Tips und Lösungen gefunden, für mein aktuelles Problem leider nicht, deshalb hier meine (erste) Anfrage:
ich habe eine Datei mit den Namen der Mitarbeitenden ab Zeile 8 in Spalte A, die Bezeichnung des Teams in Spalte B, in der Zeile 7 die Datumsangaben für z.B. das aktuelle Kalenderjahr. Darin werden für jeden Mitarbeitenden z. B. Urlaube und andere Abwesenheiten eingetragen. Auf einem 2.ten Tabellenblatt "Parameter" gibt es einen Bereich mit den Feiertagen.
Wochenenden, den aktuellen Tag und auch Feiertage markiere ich mittels bedingter Formatierung per VBA, und zwar so:
Sub BedFormat_Kalender()
If WsK Is Nothing Then Call ReHAb_initialisieren
WsK.Activate
Cells(7, 1).Activate
iRow = Selection.End(xlDown).Row
Application.CutCopyMode = False
Cells.FormatConditions.Delete
sAlles = "$G$7:$MM$" & iRow
sBody = "$G$8:$MM$" & iRow
'Wochenende Alles
Range(sAlles).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=WOCHENTAG(G$7;2)>5"
Range(sAlles).FormatConditions(Range(sAlles).FormatConditions.Count).SetFirstPriority
With Range(sAlles).FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
End With
With Range(sAlles).FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
End With
Range(sAlles).FormatConditions(1).StopIfTrue = False
'Feiertage ausfüllen alles
Range(sAlles).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=SVERWEIS(G$7;Parameter!$F$2:$F$29;1;0)"
Range(sAlles).FormatConditions(Range(sAlles).FormatConditions.Count).SetFirstPriority
With Range(sAlles).FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
End With
With Range(sAlles).FormatConditions(1).Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Range(sAlles).FormatConditions(1).StopIfTrue = False
'Feiertage Schrift ausblenden
Range(sBody).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=SVERWEIS(G$7;Parameter!$F$2:$F$29;1;0)"
Range(sBody).FormatConditions(Range(sBody).FormatConditions.Count).SetFirstPriority
With Range(sBody).FormatConditions(1).Font
.Color = -16727809
.TintAndShade = 0
End With
Range(sBody).FormatConditions(1).StopIfTrue = False
'Heute markieren
Range("$AA$7:$AZ$7").FormatConditions.Add Type:=xlTimePeriod, DateOperator:=xlToday
Range("$AA$7:$AZ$7").FormatConditions(Range("$AA$7:$AZ$7").FormatConditions.Count).SetFirstPriority
With Range("$AA$7:$AZ$7").FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
End With
Range("$AA$7:$AZ$7").FormatConditions(1).StopIfTrue = False
End Sub
Das funktioniert soweit ganz prima, das heutige Datum funktioniert nur für die Datumszeile, aber das ist auch soweit in Ordnung.
Jetzt zu meinem Problem:
für die Teamleitenden habe ich eine Datei, in der per Datenabfrage nur die Teammitglieder und deren Kalendereintragungen abgefragt werden, auch hier gibt es eine Tabelle "Parameter" in der ebenfalls die Feiertage vorhanden sind.
Nun möchte ich per Bedingter Formatierung hier ebenfalls die Feiertage einfärben, im Grunde genau wie oben, die Zellbereiche sind natürlich angepasst, das funktioniert auch ganz wunderbar für den heutigen Tag und die Wochenenden, nicht aber für die Feiertage und ich verstehe leider nicht, warum?
Hat jemand eine Idee, liegt es an der Datenabfrage? Aber warum funktionieren dann die Wochenenden? Ich weiß leider nicht mehr weiter und habe zu dem Thema leider intensiv recherchiert, aber nichts gefunden. Hier ist meine letzte Hoffnung auf Hilfe.
Gruß Gerhard
Anzeige