habe vor ein paar Tage mal hier gefragt, ob es möglich ist, Zellen unter bestimmten Bedingungen zu färben. Hier im Beispiel soll, wenn die Zelle B leer ist, die entsprechende Zeile GELB und die betroffene Zelle in B ROT gefärbt werden. Das kam dabei raus:
Sub B_leer()
Dim lngRow As Long, lngCol As Long
Dim Bereich As Range
Dim objTab As Worksheet
Set objTab = ActiveSheet
'Spalte B
With objTab
'Suche letzte Zeile
lngRow = .Cells.Find("*", , xlValues, 2, 1, 2, False, False).Row
''Suche letzte Spalte AUTOMATISCH
'lngCol = .UsedRange(, .UsedRange.Columns.Count).Column
'Suche letzte Spalte MANULL mit Wert (29 = AC)
lngCol = 29
Set Bereich = .Range("B10:B" & lngRow)
'Bereich.Interior.ColorIndex = xlColorIndexNone
If Application.WorksheetFunction.CountBlank(Bereich) > 0 Then
For Each Bereich In Bereich.SpecialCells(xlCellTypeBlanks)
.Range(.Cells(Bereich.Row, 1), .Cells(Bereich.Row, lngCol)).Interior.ColorIndex = 6
Bereich.Interior.ColorIndex = 3
Next Bereich
End If
End With
End Sub
Meine Frage dazu: kann ich das färben der Zeile in Gelb verhindern:
.Range(.Cells(Bereich.Row, 1), .Cells(Bereich.Row, lngCol)).Interior.ColorIndex = 6
wenn die entsprechende Zeile schon gelb ist. Im Prinzip würde es reichen, wenn vor dem färben der Zeile noch geprüft ist, on die Zelle in A in der gefundenen Zeile schon Gelb ist. Wenn A schon gelb ist, dann nur die Zelle mit
Bereich.Interior.ColorIndex = 3
färben.
Hintergrund ist folgender: wenn der Code zB. in B10 eine leere Zelle gefunden hätte, wird die Zeile GELB gefärbt und die betroffene Zelle ROT markiert.
Würde ich nun den gleichen Code zB in Zeile E noch einmal starten und dort auch in Zeile 10 ein Fund ist, würde diese Zeile auch wieder Gelb gemacht und E10 ROT.
Damit wäre aber meine Rote Markierung von vorher in B10 mit Gelb übermalt.
Geht das, wie oben beschieben ?
Danke
Joachim