Ich habe hier mal einen allerersten Ansatz. Da ich nicht weiß, wie Du die Bedingungen in die Zellen einträgst, bin ich für dieses Beispiel davon ausgegangen, daß sie von Hand eingetragen werden.
So, falls Du noch nie mit VBA in Excel gearbeitet hast, dann wirds jetzt ein bißchen kompliziert, ich mache aber eine Schritt-für-Schritt Anleitung. Hier kommt sie:
starte Excel.
gehe ins Menü „Extras“, zeige auf den Eintrag „Makro“ und klicke dann auf Visual Basic-Editor.
jetzt bist Du im Visual Basic-Editor
normalerweise links im Bild ist der sogenannte „Projekt-Explorer“ zu sehen.
doppelklicke im Projekt-Explorer auf den Eintrag „Tabelle1 (Tabelle1)“.
es öffnet sich das sogenannte Code-Fenster, das noch leer ist.
kopiere bitte den folgenden Code in dieses Code-Fenster:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Text
Case „F“
Target.Interior.ColorIndex = 3
Case „S“
Target.Interior.ColorIndex = 6
Case „N“
Target.Interior.ColorIndex = 4
Case „D1“
Target.Interior.ColorIndex = 41
Case „D2“
Target.Interior.ColorIndex = 15
Case „U“
Target.Interior.ColorIndex = 44
Case „K“
Target.Interior.ColorIndex = 36
Case „R“
Target.Interior.ColorIndex = 35
Case „L“
Target.Interior.ColorIndex = 37
Case „OffDay“
Target.Interior.ColorIndex = 24
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End Sub
klicke im Menü „Debuggen“ auf „Kompilieren von VBAProjekt“.
verlasse den Visual Basic-Editor.
So, das war’s eigentlich schon. Wie gesagt, es ist nur ein erster Ansatz, der auch noch ziemlich primitiv ist. Um zu einem Ergebnis zu kommen, müssen die Zellen die Texte tatsächlich so enthalten, wie sie im Code abgefragt werden. Das bedeutet, Du mußt noch die Groß- und kleinschreibung beachten. Die Farben hab’ ich auch nur auf die Schnelle gewählt, die kann man natürlich noch ändern.
Also im grunde haben wir 5 Verschiedene schichten
F,S,N,D1,D2
dazu kommt dann noch U,K,R,L und -
(Urlaub,Krank,Reisetag,Lehrgang und der Off Day.
Hi Peter,
probiers mal so:
Option Explicit
Private Sub Worksheet\_Change(ByVal Target As Range)
Dim T, F, n
T = Array("F", "S", "N", "D1")
F = Array(3, 4, 5, 6)
For n = 0 To UBound(T)
Target.Interior.ColorIndex =xlnone
If Target = T(n) Then Target.Interior.ColorIndex = F(n)
Next n
End Sub
Danke für eure mühe!
Ihr geht richtig davon aus, das ivh von VBA gar keine ahnung habe
Jedoch habe ich heute morgen im netz ein sript gefunden, ist wohl auch so was in der art (scheint ein makro zu sein), welches mir die moeglichkeit gibt bis zu 30 formatierungen zu erstellen. Und da der mensch von sich aus fauel ist,…