AW: automatische Zeilenmarkierung
26.03.2013 22:04:45
Rainer
Hallo Steffen,
füge den folgenden Code in den VBA-Editor ein und starte dann das Makro.
Man kann natürlich die Zeile For projekt = 5 to 7 noch variabel gestalten. So wie ich es auf die Schnelle gemacht habe werden wirklich die die drei zeilen 5, 6 und 7 berücksichtigt.
Ggf könnte man das Makro dann auch aotmatisch laufen lassen, sobald in Spalte A oder B eine Änderung vorgenommen wird.
Option Explicit
Sub markieren()
Dim week_start As Byte
Dim week_end As Byte
Dim markierung As Byte
Dim projekt As Integer
For projekt = 5 To 7 'in den zeilen 5 bis 7 stehen deine projekte, ggf anpassen
week_start = dt_Kalenderwoche(Range("a" & projekt).Value)
week_end = dt_Kalenderwoche(Range("b" & projekt).Value)
For markierung = week_start To week_end
Cells(projekt, markierung + 3).Interior.Color = vbRed
Next markierung
Next projekt
End Sub
Function dt_Kalenderwoche(dat As Date) As Integer
Dim a As Integer
a = Int((dat - DateSerial(Year(dat), 1, 1) + _
((Weekday(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
If a = 0 Then
a = dt_Kalenderwoche(DateSerial(Year(dat) - 1, 12, 31))
ElseIf a = 53 And (Weekday(DateSerial(Year(dat), 12, 31)) - 1) Mod 7
Hoffe das hilft,
viele Grüße,
Rainer