Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.06.2025 16:23:59
18.06.2025 11:18:30
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bedingte Formatierung mittels VBA

Bedingte Formatierung mittels VBA
Josef
Hallo!
Ist bitte der Eintrag einer bedingten Formatierung mittels VBA auch möglich?
Formel ist "=ODER(ZÄHLENWENN(I2;"*kontrast*");ZÄHLENWENN(I2;"*Röntgen*"))
Farbe wäre grau.
Danke
Josef
Anzeige
Geht,... aber wozu?
01.03.2010 14:02:41
Ramses
Hallo
Die bedingte Formatierung hast du doch schon.
Wenn du es er VBA haben willst,... zeichne die ganze Zuweisung der Formatierung mit dem Makrorekorder auf.
Gruss Rainer
AW: Geht,... aber wozu?
01.03.2010 14:08:20
Josef
Hallo Ramses!
Danke für Deine Antwort.
aber wozu?
Da ich mehrere verschiedene Abfragen mit unterschiedlichen Texten habe, wollte ich mir das händische korrigieren ersparen. Habe gerade das Makro aufgezeichnet:
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ODER(ZÄHLENWENN(I2;""*kontrast*"");ZÄHLENWENN(I2;""*Röntgen*""))
Selection.FormatConditions(1).Interior.ColorIndex = 15
Danke für Deine Hilfe
Josef
Anzeige
AW: Geht,... aber wozu?
01.03.2010 14:11:48
welga
Hallo,
versuch es mal so:
Sub bedformatierung()
With Cells(2, 9).Interior
If Cells(2, 9) = "*kontrast*" Or Cells(2, 9) = "*Röntgen*" Then
.ColorIndex = 48
.Pattern = xlSolid
Else
.ColorIndex = xlNone
End If
End With
End Sub
Gruß
welga
AW: Geht,... aber wozu?
01.03.2010 14:51:50
Josef
Hallo Welga!
Danke für Deine Antwort.
Ich wollte es so probieren:
Sub BedingtesFormat()
Dim Name
Dim Name1
Dim Name2
Dim wks As Worksheet
Dim wks1 As Worksheet
Dim Bereich As Range
Set wks = Workbooks("Masterprog.xla").Worksheets("Tabelle1")
Set wks1 = Workbooks("Masterfile.xls").Worksheets("Tabelle1")
Set Bereich = Range("I2", Cells(Rows.Count, 2).End(xlUp))
Name = wks.Range("BE1")
Name1 = wks.Range("BF1")
Name2 = wks.Range("BG1")
With wks1
Bereich.FormatConditions.Delete
Bereich.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ODER(ZÄHLENWENN(I2;Name);ZÄHLENWENN(I2;""*Name1*"");ZÄHLENWENN(I2;""*Name2*""))"
Bereich.FormatConditions(1).Interior.ColorIndex = 15
End With
End Sub
Leider klappt es mit der Deklaration nicht (Name)
Josef
Anzeige
AW: Geht,... aber wozu?
01.03.2010 14:57:28
Reinhard
Hallo Josef,
vermeide Bezeichnungen die Vba auch kennt, wie z.B. Name.
Set bereich = Range("I2", Cells(Rows.Count, 2).End(xlUp))
ergibt den Bereich B1:I2, ist das so gewünscht?
Gruß
Reinhard
AW: Geht,... aber wozu?
01.03.2010 19:28:40
welga
dann versuche es doch so:
Ist nicht so kompliziert wie deins und vermeidet auch die namensdeklaration.
Sub bedformatierung()
With Range("I2", Cells(Rows.Count, 2).End(xlUp)).Interior
If Cells(2, 9) = "*kontrast*" Or Cells(2, 9) = "*Röntgen*" Then
.ColorIndex = 15
.Pattern = xlSolid
Else
.ColorIndex = xlNone
End If
End With
End Sub
Gruß
welga
Anzeige
AW: Geht,... aber wozu?
01.03.2010 21:52:43
Josef
Hallo welga! Hallo Reinhard!
Danke für Eure Antworten!
Meine Zielsetzung war, die gesuchten Werte über die Namensdeklarationen in die Formel einzubinden.
Also wenn Tabelle1!Be1 den Wert kontrast hätte sollte über die Deklaration Name der Wert in der dementsprechenden Zelle in die Formel eingebunden werden.
Josef
Anzeige
Lösung gefunden
02.03.2010 07:12:01
Josef
Hallo!
Meine Lösung! Funktioniert sogar
Sub BedingtesFormat_3()
Dim wx
Dim xy
Dim yz
Dim wks As Worksheet
Dim wks1 As Worksheet
Dim bereich As Range
Set wks = Workbooks("Masterprog.xla").Worksheets("Tabelle1")
Set wks1 = Workbooks("Masterfile.xls").Worksheets("Tabelle1")
'Set bereich = Range("I2", Cells(Rows.Count, 2).End(xlUp))
Set bereich = ActiveSheet.Range("I2:I" & ActiveSheet.Range("A65536").End(xlUp).Row)
wx = wks.Range("BE1")
xy = wks.Range("BF1")
yz = wks.Range("BG1")
With wks1
bereich.FormatConditions.Delete
bereich.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ODER(ZÄHLENWENN(I2;""*" & wx & "*"");ZÄHLENWENN(I2;""*" & xy & "*"");ZÄHLENWENN(I2;""* _
" & yz & "*""))"
bereich.FormatConditions(1).Interior.ColorIndex = 15
End With
End Sub

Danke nochmals für Eure Hilfe.
Schönen Tag noch
Josef
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige