Clever-Excel-Forum

Normale Version: Arbeitszeit Eingabe farblicher Zeitstrahl automatisch
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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.

Gruß lordilein

[attachment=5064]
Hola,

das geht mit der bedingten Formatierung.

Leider kann man auf dem Bildchen nicht erkennen, wo und wie du deine Arbeitszeit eingibst. Eine Datei wäre da hilfreicher.

Gruß,
steve1da
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?
Hallo, erst mal Danke für Eure Antworten, ich habe den Vorschlag von GMG aufgenommen und jeweils eine Star und Endzeit Zeile eingefügt.

Wie geht das mit bedingter Formatierung?

[attachment=5071]
Hola,

ich wiederhole die Bitte nach einer Beispieldatei.

Alternativ zum selber Basteln, als Formel in der bedingten Formatierung:


Code:
=(STUNDE(D$1)>=$B2)*(STUNDE(D$1)<=$C2)

Gruß,
steve1da
Moin,

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.
ich lade mal meine Excel hoch, wie gewünscht.
Hi lordi,

mein Vorschlag zu deiner Frage Beitrag #4

[
Bild bitte so als Datei hochladen: Klick mich!
]

[
Bild bitte so als Datei hochladen: Klick mich!
]
@[b]WillWissen[/b]

danke für den Vorschlag, mal sehen ob ich das so umsetzen kann anhand der Bilder Wink Danke.
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)

Arbeitsblatt mit dem Namen 'Sheet1 (2)'
 BCDEFGHIJKLMNOPQ
5Arbeitszeit1:002:003:004:005:006:007:008:009:0010:0011:0012:0013:0014:00
61:002:00              
77:008:00              
8                
95:0013:00              

Zellebedingte Formatierung...Format
D61: =(D$5>=$B6)*(D$5<=$C6)abc
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Seiten: 1 2