Hallo für mein Dienstplan (Schicht) habe ich mir eine Excel Tabelle gebaut (s. Anhang), nun möchte ich nicht jedes mal den Zeitstrahl selber mahlen müssen, sondern unter Arbeitszeit einfach nur die Zeit eingeben wie
09:00 - 17:00
und der Zeitstrahl soll farblich automatisch "gemalt" werden, geht das mit Excel und wenn ja wie, für die Hilfe bin ich schon jetzt Dankbar.
Moin,
du solltest aber in jedem Fall die Arbeitszeit getrennt nach Start und Ende eingeben, also in 2 Zellen. Das erleichtert die Auswertung. Und sind es immer "glatte" Stundenzahlen für Beginn und Ende?
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
ohne Nachtschicht (über Mitternacht hinaus) ist Steves Lösung besser geeignet als meine, weil mehr "Automatismus". Mit Nachtschicht sollte dieser Code die Basis-Anforderungen erfüllen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZe As Range, rngSE As Range, TRow As Integer
Dim S As Integer, E As Integer, NextDay As Boolean
TRow = Target.Row
Set rngSE = Range("D" & TRow & ":E" & TRow)
Set rngZe = Range("D" & TRow & ":AA" & TRow)
If WorksheetFunction.Count(Cells(TRow, 2), Cells(TRow, 3)) = 2 Then
S = Cells(TRow, 2)
E = Cells(TRow, 3)
If Not Intersect(Range("B2:C32"), Target) Is Nothing Then
rngZe.ClearFormats
NextDay = E < S
If Not NextDay Then
Range(Cells(TRow, S + 3), Cells(TRow, E + 3)).Interior.Color = RGB(255, 0, 0)
Else
Range(Cells(TRow, S + 3), Cells(TRow, "AA")).Interior.Color = RGB(255, 0, 0)
Range(Cells(TRow + 1, 4), Cells(TRow + 1, E + 3)).Interior.Color = RGB(255, 0, 0)
End If
End If
End If
End Sub
Das lässt sich noch optimieren, aber als Einstieg reicht es trotz der kleinen Fehlerchen.
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Hallo Günter, warum "arbeitest" du hier mit STUNDE()..? ... in der Datei sind doch jeweils richtige Zeiten eingegeben. Hie würde dann ja =(D$5>=$B6)*(D$5<=$C6) reichen... ... obwohl ich mich frage, was passieren soll, wenn das aussehen soll, bei einer Arbeitsstunde (z.B. von 1:00 bis 2:00 oder 7:00 bis 8:00)