So sieht jetzt mein Code aus!
Nur setzt er die erste Bedingung auf Grün (Eigendlich letztes für Heute()) und nicht auf Gelb.
alle anderen werden geschrieben, allerdings ohne Hintergrundfarbe.
Code:
Sub BedingteFormatierungBeispiel()
'Bereich definieren
Dim MeinBereich As Range 'Ferien
Dim MeinBereich2 As Range 'Ferien
Dim MeinBereich3 As Range 'FeiertageSamstag
Dim MeinBereich4 As Range 'Feiertage
Dim MeinBereich5 As Range 'Brückentage
Dim MeinBereich6 As Range 'Heute
Dim strFormula As String 'Ferien
Dim strFormula2 As String 'Ferien
Dim strFormula3 As String 'FeiertageSamstag
Dim strFormula4 As String 'Feiertage
Dim strFormula5 As String 'Brückentage
Dim strFormula6 As String 'Heute
Set MeinBereich = Range("$G$6:$L$12, $N$6:$S$12, $U$6:$Z$12, $AB$6:$AG$12, $G$16:$L$22, $N$16:$S$22, $U$16:$Z$22, $AB$16:$AG$22, $G$26:$L$32, $U$26:$Z$32, $AB$26:$AG$32, $N$26:$S$32")
Set MeinBereich2 = Range("$G$6:$L$12, $N$6:$S$12, $U$6:$Z$12, $AB$6:$AG$12, $G$16:$L$22, $N$16:$S$22, $U$16:$Z$22, $AB$16:$AG$22, $G$26:$L$32, $U$26:$Z$32, $AB$26:$AG$32, $N$26:$S$32")
'FeiertageSamstag
Set MeinBereich3 = Range("$G$11:$L$11, $N$11:$S$11, $U$11:$Z$11, $AB$11:$AG$11, $G$21:$L$21, $N$21:$S$21, $U$21:$Z$21, $AB$21:$AG$21, $G$31:$L$31, $N$31:$S$31, $U$31:$Z$31, $AB$31:$AG$31")
'Feiertage
Set MeinBereich4 = Range("$G$6:$L$12, $N$6:$S$12, $U$6:$Z$12, $AB$6:$AG$12, $G$16:$L$22, $N$16:$S$22, $U$16:$Z$22, $AB$16:$AG$22, $G$26:$L$32, $U$26:$Z$32, $AB$26:$AG$32, $N$26:$S$32")
'Brückentage
Set MeinBereich5 = Range("$G$6:$L$12, $N$6:$S$12, $U$6:$Z$12, $AB$6:$AG$12, $G$16:$L$22, $N$16:$S$22, $U$16:$Z$22, $AB$16:$AG$22, $G$26:$L$32, $U$26:$Z$32, $AB$26:$AG$32, $N$26:$S$32")
'Heute
Set MeinBereich6 = Range("$G$6:$L$12, $N$6:$S$12, $U$6:$Z$12, $AB$6:$AG$12, $G$16:$L$22, $N$16:$S$22, $U$16:$Z$22, $AB$16:$AG$22, $G$26:$L$32, $U$26:$Z$32, $AB$26:$AG$32, $N$26:$S$32")
'Ferien markieren
strFormula = "=WENN(UND($AE$37=""Ja"";ZÄHLENWENN(Feiertage;G6)<>1);ZÄHLENWENNS(Ferien_von;""<=""&G6;Ferien_bis;"">=""&G6))"
strFormula2 = "=WENN(UND($AE$37=""Ja"";ZÄHLENWENN(Feiertage;G6)<>1);ZÄHLENWENNS(Ferien_von;""<=""&G6;Ferien_von;"">=""&G6))"
strFormula3 = "=ZÄHLENWENN(Feiertage;G11)=1"
'Feiertage
strFormula4 = "=ZÄHLENWENN(Feiertage;G6)=1"
'Brückentage
strFormula5 = "=WENN($AE$41=""Ja"";ODER((REST(G6;7)=2)*ZÄHLENWENN(Feiertage;G6+1);(REST(G6;7)=6)*ZÄHLENWENN(Feiertage;G6-1)))"
'Heute
strFormula6 = "=UND($AE$39=""Ja"";G6=HEUTE())"
'Bereiche löschen
MeinBereich.FormatConditions.Delete
'Bedingte Formatierung anwenden
'Ferien
MeinBereich.FormatConditions.Add Type:=xlExpression, _
Formula1:=strFormula
MeinBereich.FormatConditions(1).Interior.Color = RGB(255, 255, 0)
MeinBereich2.FormatConditions.Add Type:=xlExpression, _
Formula1:=strFormula2
MeinBereich2.FormatConditions(1).Interior.Color = RGB(255, 255, 0)
'FeiertageSamstag
MeinBereich3.FormatConditions.Add Type:=xlExpression, _
Formula1:=strFormula3
MeinBereich3.FormatConditions(1).Interior.Color = RGB(255, 204, 153) '255, 0, 0 (+Schriftfarbe Rot ????
'Feiertage
MeinBereich4.FormatConditions.Add Type:=xlExpression, _
Formula1:=strFormula4
MeinBereich4.FormatConditions(1).Interior.Color = RGB(255, 204, 153) '255, 0, 0 (+Schriftfarbe Rot ????
'Brückentage
MeinBereich5.FormatConditions.Add Type:=xlExpression, _
Formula1:=strFormula5
MeinBereich5.FormatConditions(1).Interior.Color = RGB(0, 176, 240)
'Heute
MeinBereich6.FormatConditions.Add Type:=xlExpression, _
Formula1:=strFormula6
MeinBereich6.FormatConditions(1).Interior.Color = RGB(146, 208, 80)
End Sub
Nur setzt er die erste Bedingung auf Grün (Eigendlich letztes für Heute()) und nicht auf Gelb.
alle anderen werden geschrieben, allerdings ohne Hintergrundfarbe.