Über folgenden Code erstelle ich einen Zeitstrahl.
For Each cell In datumswerte
If IsDate(cell.Value) And _
(DateSerial(jahr, 1, 1) < cell.Value And DateSerial(jahr, 12, 31) > cell.Value Or _
DateSerial(jahr + 1, 1, 1) < cell.Value And DateSerial(jahr + 1, 12, 31) > cell.Value) Then
phasenbezeichnung = ""
x = cell.Column
y = cell.Row
'Text bestimmen
Select Case cell.Column
Case 2
phasenbezeichnung = "Entw"
Case 3
phasenbezeichnung = "Test"
Case 4
phasenbezeichnung = "Prod."
Case 5
If IsDate(Cells(cell.Row, 4).Value) Then phasenbezeichnung = "Betrieb " & Cells(cell.Row, 1).Value
End Select
If phasenbezeichnung <> "" Then
' Zellenbestimmung
If DateSerial(jahr, 1, 1) < cell.Value And DateSerial(jahr, 12, 31) > cell.Value Then
offset = 6
spalte = DateDiff("d", DateSerial(jahr, 1, 1), cell.Value) + 1
End If
If DateSerial(jahr + 1, 1, 1) < cell.Value And DateSerial(jahr + 1, 12, 31) > cell.Value Then
offset = 372
spalte = DateDiff("d", DateSerial(jahr + 1, 1, 1), cell.Value) + 1
End If
Cells(cell.Row, offset + spalte).Value = phasenbezeichnung
' Farbe setzen
If IsDate(Cells(y, x + 1).Value) And IsDate(Cells(y, x).Value) Then
For i = 0 To DateDiff("d", Cells(y, x).Value, Cells(y, x + 1).Value) Step 1
Select Case x
Case 2
c = 40
Case 3
c = 36
Case 4
c = 35
Case 5
c = 24
End Select
Cells(y, offset + spalte + i).Interior.ColorIndex = c
Next
End If
Allerdings zeigt er mir keine farbigen Linien an, wenn ein Termin im Vorjahr startet. Wie muss ich den Code ändern, dass er das macht?
|