Das Problem im speziellen ist, dass das Makro nicht automatisiert ist. [...], aber die Farbe erlischt nicht, wenn ich die Eintragungen wieder entferne. Ich möchte, dass es unabhängig von dem VBA Editor die Zellen bei Eingabe der Labels markiert.
Aha, na das ist ein äußerst wichtiger (!!) Punkt den du hier - das erste mal - ansprichst und der einiges ändert.
Ja dafür gibt es das Worksheet_Change-Ereignis.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Range(Cells(4, "I"), Cells(Rows.Count, "I").End(xlUp)), Target)
If Target Is Nothing Then Exit Sub
Dim rngCell As Excel.Range
For Each rngCell In Target.Cells
Select Case Trim$(rngCell.Text)
'Gruppe 1
Case "E1", "E2", "E3", "EE1", "EE2", "EE3", "EE4"
rngCell.Interior.Color = RGB(0, 128, 0)
'Gruppe 2
Case "T1", "T2", "T3", "T4", "T5", "TT1", "TT2", "TT3"
rngCell.Interior.Color = RGB(0, 204, 255)
'Gruppe 3
Case "Z1", "Z2", "Z3"
rngCell.Interior.Color = RGB(153, 51, 0)
'Gruppe 4
Case "U1", "U2", "U3"
rngCell.Interior.Color = RGB(153, 51, 102)
'Gruppe 5
Case "K", "TEC", "NEC"
rngCell.Interior.Color = RGB(51, 51, 51)
'Gruppe 6
Case "STR", "ENT", "KUR", "SOF", "SER", "ORG", "RE"
rngCell.Interior.Color = RGB(255, 0, 0)
'.. und ansonsten
Case Else
rngCell.Interior.ColorIndex = xlColorIndexNone
End Select
Next
End Sub
Anstatt dem Interior.Color kannst du natürlich auch den von dir bereits angegebenen Interior.ColorIndex setzen und auf das RGB(...) somit verzichten.
Was die Sache mit der bedingten Formatierung anbelangt, solltest du dich für eines entscheiden, entweder VBA, oder für bedingte Formatierung. Beides zusammen ergibt meist zusätzliche Umstände.
Angehen kann man das mit der bedingte Formatierung wie folgt:
-
du markierst den Bereich der Werte für Gruppe 1 und gibst ihnen einen repräsentativen Namen (z.B. __GRP01)
-
anschließend erstellst du eine neue bedingte Formatierungsregel mit nachfolgender Formel für deinen Datenbereich
-
=VERGLEICH(INDIREKT(ADRESSE(ZEILE();SPALTE()));__GRP01;0)
Diese Schritte wiederholst du für jede Gruppe - den hervorgehobenen Teil in der Formel musst du natürlich je Regel anpassen.
Sollte mal ein neuer Eintrag zu einer Gruppe hinzukommen, brauchst du diesen nur dem benannten Bereich hinzuzufügen.
PS: Wenn du den Gruppen Namen gibst, kannts du diese natürlich auch in der VBA-Lösungsvariante darüber ansprechen...
Range("__GRP01")
...und so deinen Quellcode allgemeiner halten kannst.
Es gibt da sehr viele Lösungsmöglichkeiten die ich hier nicht alle aufzählen will.
|