Herbers Excel-Forum - das Archiv

Bedingte Formatierung per VBA mit Schleife

nach unten


Betrifft: Bedingte Formatierung per VBA mit Schleife
von: Dirk

Geschrieben am: 25.09.2019 15:09:59

Hallo Zusammen,
ich arbeite derzeit an eine Urlaubsliste (Excel 2010) und möchte per VBA eine bedingte Formatierung realisieren die 1 Halbjahr, als ca. 180 Einträge auf einen Schlag formatiert :
Dies für eine Spalte :

Sub Makro2()
' Makro2 Makro
Range("H2:H21").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$H$2=""So"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub

Ich würde nun gerne eine Schleife hinzufügen, welche diese Formatierung um eine Spalte verschiebt (addiert) und dann anwendet, bis 180 Spalten (von Spalte H bis Spalte GG) abgearbeitet sind.
Für eure Hilfe im Vorfeld schon mal herzlichen Dank....

Betrifft: AW: Bedingte Formatierung per VBA mit Schleife
von: Klaus

Geschrieben am: 25.09.2019 15:54:35
Sub Makro2()
' Makro2 Makro
For i=1 to 180
Range(Cells(2,7+i),Cells(21,7+i).Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$H$2=""So"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
next i
End Sub

Betrifft: AW: Bedingte Formatierung per VBA mit Schleife
von: Klaus
Geschrieben am: 25.09.2019 15:55:41
Die Klammer geschlossen fehlt noch bei der Selection..

Betrifft: AW: Bedingte Formatierung per VBA mit Schleife
von: Steve

Geschrieben am: 25.09.2019 16:05:58
Sub Makro2()
' Makro2 Makro
For i=1 to 180
With Range(Cells(2,7+i),Cells(21,7+i)
.FormatConditions.Add Type:=xlExpression, Formula1:="=$H$2=""So""" .FormatConditions(. _
FormatConditions.Count).SetFirstPriority
.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.FormatConditions(1).StopIfTrue = False
End with
next i
End Sub
Versuchs mal so is kürzer der makrorekorder nimmt viel Mist mit auf

Betrifft: AW: Bedingte Formatierung per VBA mit Schleife
von: Dirk
Geschrieben am: 25.09.2019 17:17:02
Vielen Dank an Klaus und auch an Steve,
Das Skript von Klaus hat auf Anhieb funktioniert.
Bei Steves Vorschlag fing der Editor hier an zu meckern :
.FormatConditions.Add Type:=xlExpression, Formula1:="=$H$2=""So""" .FormatConditions(. _
FormatConditions.Count).SetFirstPriority
(Fehler beim Kompilieren - Syntaxfehler)
Wie dem auch sei: Auf jeden Fall bedanke ich mich sehr schnelle und effektive Hilfe...Top

Excel-Beispiele zum Thema "Bedingte Formatierung per VBA mit Schleife"
Bedingter Mittelwert Jahreskalender und bedingte Formatierung
Bedingte Übergabe des Focus und Setzen der Schreibmarke im Dialog Bedingte Formatierung auslesen
Über die bedingte Formatierung den Minimalwert markieren Über bedingte Formatierung Hintergrundfarbe bei Zelleingabe ändern
Bedingte Formatierung in Abhängigkeit eines Zellkommentars Markierung von Formeln über bedingte Formatierung
Zeitabhängige Zellmarkierungen über bedingte Formatierung setzen Tabellenvergleich über die bedingte Formatierung