Zelle(n) färben
17.05.2013 01:55:49
Erich
Hi Walter,
wann soll gefärbt werden? Durch Makrostart per Hand und Prüfung der ganzen Spalte K in einem Rutsch?
Oder jeweils bei Änderung einer Zelle nur für diese Zelle?
Ein normales Makro könnte so aussehen (in ein normales Modul):
Option Explicit
Sub GruenWenn()
Dim lngQ As Long, arQ, zz As Long, rngG As Range, rngN As Range
With Sheets("Tabelle1") ' anpassen
lngQ = .Cells(.Rows.Count, 11).End(xlUp).Row ' Spalte K = 11
If lngQ >= 4 Then
arQ = Cells(4, 11).Resize(lngQ - 3)
For zz = 1 To UBound(arQ)
If Not IsEmpty(arQ(zz, 1)) And arQ(zz, 1) = 0 Then
If rngG Is Nothing Then
Set rngG = Cells(zz + 3, 12) ' Spalte L = 12
Else
Set rngG = Union(rngG, Cells(zz + 3, 12))
End If
Else
If rngN Is Nothing Then
Set rngN = Cells(zz + 3, 12)
Else
Set rngN = Union(rngN, Cells(zz + 3, 12))
End If
End If
Next zz ' Grün
If Not rngG Is Nothing Then rngG.Interior.Color = RGB(0, 200, 0)
If Not rngN Is Nothing Then rngN.Interior.Color = xlNone
End If
End With
End Sub
Ein Ereignismakro, das auf Änderungen im Bereich K4:Kxxx reagiert, käme in den
Code des Tabellenblatts:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target.Row >= 4 Then
If Not Intersect(Target, Columns(11)) Is Nothing Then ' 0 steht in Spalte K
Target.Offset(, 1).Interior.Color = _
IIf(Not IsEmpty(Target) And Target = 0, RGB(0, 200, 0), xlNone)
End If
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich