Hallo,
Ok dann versuch ich mal ein wenig das Durcheinander zu
entwirren.
Die Farbverteilung ist:
- hellgelb: Zeilenfarbe fürs Wochende
-
- Spalte alles Grün
- 2.-4. Spalte alles rot
- wenn Änderungen erfolgen, z.B. ein F eingetragen wird, dann
wird die neue Feldfarbe grün
( If cell.Value = „F“ Then cell.Interior.ColorIndex = 4
If cell.Value = „S“ Then cell.Interior.ColorIndex = 4
If cell.Value = „FS“ Then cell.Interior.ColorIndex = 4
If cell.Value = „U“ Then cell.Interior.ColorIndex = 44
If cell.Value = „HO“ Then cell.Interior.ColorIndex =
15
If cell.Value = „SU“ Then cell.Interior.ColorIndex =
-
Hinzukommen soll nun, dass wenn in einer Zeile die Werte F und
S enthalten sind, dass diese Zeile (Spalte 2.-4.) komplett
grün hinterlegt wird. Gleiches soll passieren, wenn in einer
Zeile der Wert FS steht.
Und genau hier liegt mein Problem, ich schaffe es nicht die
Farbe
der Zeile geknüpft an 2 Bedingungen farblich zu verändern.
Gruß Susanne
Hallo Susanne,
hier noch mal eine neue Version des Makros. Vielleicht ist es jetzt das, was du möchtest. Falls nicht, denke ich, dass du ihn dir selber so anpassen kannst, wie du es brauchst.
Gruß, Andreas
Option Explicit
Sub formatieren()
Dim s As Boolean, f As Boolean, fs As Boolean
Dim zeile As Long, spalte As Long
Dim woche As Integer, tag As Integer
zeile = 1
For woche = 1 To 5
For tag = 1 To 5
Cells(zeile, 1).Interior.ColorIndex = 4
Range(Cells(zeile, 2), Cells(zeile, 4)).Interior.ColorIndex = 3
zeile = zeile + 1
Next tag
Range(Cells(zeile, 1), Cells(zeile + 1, 4)).Interior.ColorIndex = 36
zeile = zeile + 2
Next woche
For zeile = 1 To woche * 7
s = False
f = False
fs = False
For spalte = 1 To 4
Select Case Cells(zeile, spalte)
Case „F“, „S“, „FS“
Cells(zeile, spalte).Interior.ColorIndex = 4
If Cells(zeile, spalte) = „F“ Then
f = True
ElseIf Cells(zeile, spalte) = „S“ Then
s = True
ElseIf Cells(zeile, spalte) = „FS“ Then
fs = True
End If
Case „U“
Cells(zeile, spalte).Interior.ColorIndex = 44
Case „HO“
Cells(zeile, spalte).Interior.ColorIndex = 15
Case „SU“
Cells(zeile, spalte).Interior.ColorIndex = 42
End Select
Next spalte
For spalte = 2 To 4
If ((f And s) Or fs) Then
Cells(zeile, spalte).Interior.ColorIndex = 4
End If
Next spalte
Next zeile
End Sub