Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
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

bedingte Formatierung will nicht

bedingte Formatierung will nicht
04.07.2022 12:25:51
Michael
Hallo zusammen,
um in einer bestimmten Datei immer wieder kaputtgehende bedingte Formatierungen leichter wiederherstellen zu können, möchte ich sie in einem Makro definieren.
Leider gelingt es mir heute weder von Hand noch per aufgezeichnetem Makro diese Formatierung so herzustellen, wie sie sein soll:
- für HEUTE() sollen mehrere Zellen der Zeile eingefärbt werden.
- fürs Wochenende soll dasselbe mit anderer Farbe und mit zwei Zeilen geschehen.
- für Feiertage reicht es, nur das Datum grün zu unterlegen.
Bei mir kommt immer das hier dabei raus:
Userbild
Mit dieser Datei tüftel ich rum:
https://www.herber.de/bbs/user/153985.xlsm
In ihr ist Tabelle1 weiß, als erstes muss also das Makro ausgeführt werden. Bin gespannt, was bei Euch passiert...
Was mach ich falsch?
Lieben Dank im Voraus und viele Grüße
Michael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bedingte Formatierung will nicht
04.07.2022 12:39:10
ralf_b

Sub bedingteFormatierungen()
ThisWorkbook.Sheets("Tabelle1").Range("A1:Z1000").FormatConditions.Delete
' Heute
With Range("A1:Z1000")
.FormatConditions.Add Type:=xlExpression, Formula1:="=$C1=HEUTE()"
.FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(.FormatConditions.Count)
With .Borders(xlBottom)
.LineStyle = xlContinuous
.ThemeColor = 6
.TintAndShade = 0.399884029663991
.Weight = xlThin
End With
With .Interior
.PatternColorIndex = 0
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.899990844447157
.PatternTintAndShade = 0
End With
.StopIfTrue = Yes
End With
End With
' Wochenende
With Range("B1:Z1000")
.FormatConditions.Add Type:=xlExpression, Formula1:="=(WOCHENTAG($C1;2) > 5)"
'  .FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(.FormatConditions.Count)
With .Interior
.PatternColorIndex = 0
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.899990844447157
.PatternTintAndShade = 0
End With
.StopIfTrue = False
End With
End With
' Feiertage
With Range("C1:C1000")
.FormatConditions.Add Type:=xlExpression, Formula1:="=SVERWEIS($C1;Feiertage!$C$2:$C$89;1;0)"
' .FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(.FormatConditions.Count)
With .Font
.Bold = True
.Italic = False
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
With .Interior
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
End With
.StopIfTrue = False
End With
End With
End Sub

Anzeige
AW: bedingte Formatierung will nicht
04.07.2022 12:46:17
Michael
Hallo Ralf,
leider nicht:
Userbild
Oder hatte es bei Dir geklappt? Wundern würd's mich nicht....
VG Michael
AW: bedingte Formatierung will nicht
04.07.2022 12:58:35
ralf_b
Userbild
AW: bedingte Formatierung will nicht
04.07.2022 13:08:23
Michael
Hallo Ralf,
ja, so soll das aussehen. Wie kann es kommen, dass es bei mir zu einem ganz anderen Ergebnis kommt? Gibt es da in den Tiefen der Einstellungen irgendwas, das dazu führen kann?
Als ich vor langer Zeit die Formatierungen in der eigentlichen Datei einbaute, klappte ja auch alles wie gewünscht. Und heute? Ein einziger Frust mit diesem Programm...
VG Michael
Anzeige
AW: bedingte Formatierung will nicht
04.07.2022 13:27:10
ralf_b
hast du den Code komplett so übernommen?
AW: bedingte Formatierung will nicht
04.07.2022 13:43:16
Michael
Offensichtlich nicht. Hatte nur die Reihenfolge geändert (Heute vors Wochenende) und ...SetFirstPriority nur bei Heute belassen, diese Zeile bei den Wochenenden und Feiertagen auskommentiert.
Nun habe ich Deinen Code von vorhin in die Datei kopiert - hätte das gleich tun sollen.
Als einzigen weiteren Unterschied erkenne nur die Dollarzeichen vorm C den Formeln. Die hatte ich vorhin übersehen.
Ich verstehe schon, wofür die gut sind, jetzt umso mehr ;-)
Besten Dank, so funktioniert es!
VG Michael
Nachtrag
04.07.2022 13:57:30
Michael
Nun mussten im Code nur noch die Feiertage vor die Wochenenden, sonst hatten Feiertage am Wochenende zwar weiße Schrift, aber keinen dunkel-, sondern einen hellgrünen Hintergrund, was das Datum schlecht lesbar machte. In der Beispieldatei gab es den Fall erst ziemlich weit unten, am 25.12...
Bis dahin ;-)
Michael
Anzeige
AW: bedingte Formatierung will nicht
04.07.2022 13:37:33
Daniel
Hi
wenn du basierend von einer einzelnen Zelle (Datum in C1) einen größeren Zellbereich färben willst , z.B. alle Zellen in der Zeile von B1 bis Z1, dann musst du in der Formel den auf die jeweilige Zelle absolut setzen, sonst wandert er mit.
Das gilt für Zeilen wie für Spalten. in deinem Fall ist das Mitwandern für Zeilen erwünscht (die Zelle B2 soll durch Zelle C2 gefärbt werden) aber nicht für Spalten. dh sowohl B1, C1, D1, ... Z1 sollen alle durch C1 gefärbt werden, also musst du den Bezug auf die Spalte C absolut setzen:
Die Spalte in der Formel muss immer dann absolut gesetzt werden, wenn der Gültigkeitsbereich mehrere Spalten umfasst, diese aber alle von der selben Zelle gesteuert werden sollen.

With Range("B1:Z1000")
.FormatConditions.Add Type:=xlExpression, Formula1:="=(WOCHENTAG($C1;2) > 5)"
ohne das $ wandert der bezug mit, dh wenn B1 durch C1 gesteuert wird, wird C1 durch D1, D1 durch E1 usw gesteuert, dh immer durch die rechte nachbarzelle.
Gruß Daniel
Anzeige
AW: bedingte Formatierung will nicht
04.07.2022 13:58:27
Michael
Hallo Daniel,
Danke auch Dir für Deine Erklärungen!
LG Michael

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige