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

Bedignte Formatierung VBA

Bedignte Formatierung VBA
18.11.2016 10:00:15
Max2
Hallo Leute,
ich möchte per VBA mehrere bedingte Formatierungen für das Blatt "Doku" festlegen
Der User gibt ein Nominal in die Zeile von Spalte "AG" ein und alle Wert in der Zeile Y von Spalte AG die kleiner gleich dieser Wert sind werden blau eingefärbt (nur ein Beispiel)
Die Bedingungen sind:
(X steht hier für den Wert in der Spalte AG)


Meine Range für Werte die Überprüft werden sollen ist:

Set rngBereich = Range(.Cells(3, 2), .Cells(.Rows.Count, 30))
Meine Range für das Nominal ist:

Set rngWert = Range(.Cells(3, 33), .Cells(.Rows.Count, 33))
Ich habe absolut keine Ahnung wie man das FormatCondition Object verwendet, kann mir da jemand helfen ?
Das ganze soll in "Worksheet_Change" stehen.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedignte Formatierung VBA
18.11.2016 13:40:48
fcs
Hallo Max,
per Makro kann man es wie folgt umsetzen.
Für die Formel: System-EInstellung Deutsch, Excel: Deutsch
Bei anderen Sprachen, Einstellungen muss in der Formel ggf. das "UND" und das ";" geändert werden.
LG
Franz
Sub prcBedingtFormatieren()
' prcBedingtFormatieren Makro
' Spalten B:AD bedingt formatieren, abhängig von Wert in Spalte AG
Dim rngBereich As Range, rngWert As Range
Dim strFormelBereich As String, strFormelWert As String, strFormel As String
With ActiveSheet
Set rngBereich = Range(.Cells(3, 2), .Cells(.Rows.Count, 30))
strFormelBereich = rngBereich.Range("A1").Address(rowabsolute:=False, _
columnabsolute:=False, ReferenceStyle:=xlA1)
'Meine Range für das Nominal ist:
Set rngWert = Range(.Cells(3, 33), .Cells(.Rows.Count, 33))
strFormelWert = rngWert.Range("A1").Address(rowabsolute:=False, _
columnabsolute:=True, ReferenceStyle:=xlA1)
End With
rngBereich.Select
With rngBereich
.FormatConditions.Delete
strFormel = "=UND(" & strFormelBereich & """"")"
.FormatConditions.Add Type:=xlExpression, Formula1:=strFormel
.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(red:=255, green:=0, blue:=0) 'Rot
.TintAndShade = 0
End With
.FormatConditions(1).StopIfTrue = False
strFormel = "=UND(" & strFormelBereich & """"")"
.FormatConditions.Add Type:=xlExpression, Formula1:=strFormel
.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(red:=0, green:=255, blue:=255) 'hellblau
.TintAndShade = 0
End With
.FormatConditions(1).StopIfTrue = False
strFormel = "=UND(" & strFormelBereich & """"")"
.FormatConditions.Add Type:=xlExpression, Formula1:=strFormel
.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(red:=255, green:=255, blue:=0) 'gelb
.TintAndShade = 0
End With
.FormatConditions(1).StopIfTrue = False
strFormel = "=UND(" & strFormelBereich & """"")"
.FormatConditions.Add Type:=xlExpression, Formula1:=strFormel
.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(red:=128, green:=255, blue:=128) 'hell grün
.TintAndShade = 0
End With
.FormatConditions(1).StopIfTrue = False
.Range("A1").Select
End With
End Sub

Anzeige
Super, großes Dankeschön fcs/Franz!
18.11.2016 15:11:19
Max2
Wow Hammer! vielen vielen Dank!
Das Makro is wirklich klasse :)
Dir ist beim Code fürs Gelb einfärben ein "& strFormelWert" Zuviel reingerutscht!
Keine Kritik nur ein Hinweis falls jemand außer mir dein Makro benutzen will

strFormel = "=UND(" & strFormelBereich & "& strFormelWert & """"")"
.FormatConditions.Add Type:=xlExpression, Formula1:=strFormel
.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(red:=255, green:=255, blue:=0) 'gelb
.TintAndShade = 0
End With
.FormatConditions(1).StopIfTrue = False
dass Fettmarkierte löschen
Anzeige
AW: Super, großes Dankeschön fcs/Franz!
18.11.2016 19:14:45
fcs
Hallo Max,
vielen Dank für den Hinweis.
Der Doppler ist mir beim Umstellen der Zeilenumbrüche für die Forumsdarstellung passiert.
LG
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige