Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Bedingte Formatierung mittels VBA

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

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Geht,... aber wozu?
01.03.2010 15: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 15: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 15: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 15: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 15: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 20: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 22: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 08: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
Anzeige