KW einfärben mit VBA
06.12.2011 01:43:49
Erich
Hi Matthias,
es hat etwas länger gedauert, aber dafür habe ich für dich etwas in VBA gebastelt,
das ich normalerweise einfacher in Excel mit bed. Formatierung umgesetzt hätte.
Hier der Code:
Option Explicit
Sub WochenFarbe()
Dim avCol, lngA As Long, lngB As Long, lngF As Long
Dim lngT As Long, ww As Long, lngR As Long
' grün blau braun
avCol = Array(5287936, 12611584, 411543)
lngA = 6 ' ab Spalte F
For lngR = 0 To 2 ' in 3 Zeilen leeren
Cells(8 + 39 * lngR, lngA).Resize(, 31).Interior.Pattern = xlNone
Next lngR
lngB = 7 - (Cells(10, 6) - 2) Mod 7 ' Länge 1. Woche
lngF = Fix(((Cells(10, 6) - 2) Mod 21) / 7) ' 1. Farbe
lngT = Application.Count(Cells(10, 6).Resize(, 31)) ' Anz. Tage
For ww = 1 To 6 ' bis zu 6 Wochen
For lngR = 0 To 2 ' Färben in 3 Zeilen
Cells(8 + 39 * lngR, lngA).Resize(, lngB).Interior.Color = _
avCol((lngF + 3 - lngR) Mod 3)
Next lngR
lngA = lngA + lngB ' nächste Startspalte
If lngA > 5 + lngT Then Exit For
' Länge nächste Woche
If lngB > 6 - lngA + lngT Then lngB = 6 - lngA + lngT Else lngB = 7
lngF = lngF + 1 ' nächste Farbe
Next ww
End Sub
Und hier die (xl2010-)Mappe, in der ich dir auch diverse Formeländerungen vorschlage:
https://www.herber.de/bbs/user/77824.xlsm
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich