Excel Zeiten erfassen?

Hallo zusammen,

ich habe folgende Problem in Excel. Ich möchte einen gewissen Zeitraum aus Stundenaufzeichnungen in Tag- und Nachtzeit unterscheiden.

Dabei geht die Tagzeit von 06:00 - 20:00 Uhr und die Nachtzeit von 21:59 - 05:59 Uhr.

In B4 steht die Uhrzeit des Arbeitsbeginn und in C4 das Ende. Diese sind in Format Uhrzeit formatiert. Die entsprechenden Zahlenformate zu der Uhrzeit sind in AB4 (Beginn) und AC4 (Ende).

Nun möchte ich, wenn die Arbeitszeit z.b. von 04:00 Uhr - 23:00 Uhr geht, dass entsprechend richtig die Stundenanzahl in Tag und Nacht unterschieden wird. Die Uhrzeit kann auch tagesübergreifend sein z.B. 19:00 - 07:00 Uhr. dabei ist jede erdenkliche Möglichkeit innerhalb eines Tages (24 Stunden) möglich.

Beispiel:
Bei der Arbeitszeit von 19:00 - 07:00 Uhr sind 2 Tagstunden (19:00-20:00 + 06:00 - 07:00) und 10 Nachtstunden (20:00 - 00:00 + 00:00 - 06:00).

fehlerhafte Formel für die Tageszeit als Zahl in Zelle Z4:

=WENN(ODER(D4<>"A";AB4="";AC4="");0;WENN(UND(AC4<=AB4;AC4>=Adm!$F$7);(Adm!$F$8-B4)+(C4-Adm!$F$7);WENN(UND(AB4>=6;AC4<=20);(C4-B4);WENN(UND(AB4>=6;AC4>=20);Adm!$F$8-B4;WENN(UND(AB4<=6;AC4<=20);C4-Adm!$F$7;WENN(UND(AB4<=6;AC4>=20);Adm!$F$8-Adm!$F$7;WENN(AC4<AB4;WENN(UND(AC4<AB4;AC4<=6);(Adm!$F$8-B4);""))))))))

fehlerhafte Formel für die Nachtzeit als Zahl in Zelle AA4:

=WENN(ODER(D4<>"A";B4="";C4="");0;WENN(UND(AB4<6;AC4>20);(Adm!$F$7-B4)+(C4-Adm!$F$8);WENN(AB4<6;Adm!$F$7-B4;WENN(AC4>20;C4-Adm!$F$8;0))))

In der Zelle: "Adm!$F$7" steht als Uhrzeit formatiert 06:00 und "Adm!$F$8" steht die Uhrzeiten 20:00 Uhr.

Vielleicht hat jemand eine Idee und kann die Formeln korrigieren oder hat entsprechend einen besseren/richtigen Ansatz. Problem bei der ganzen Sache ist einfach, das hier auch Tagesübergreifend gearbeitet wird und entsprechend das Ende "kleiner" ist als der Anfang. Ich habe die Vermutung, dass mit "+1" gearbeitet werden muss, aber bin da leider raus.

Gruß

Bild zum Beitrag
Computer, Microsoft, Microsoft Excel, programmieren
VBA Intersect Bereich in Bereich überprüfen statt Zelle in Bereich?

Hallo,

wie kann ich mit der Methode Application.Intersect zwei Bereiche miteinander Vergleichen?

Normalerweise kann ich ja z.b. mit :

If Not Application.Intersect(Target, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

Überprüfen ob eine Zelle in einem benannten Bereich ausgewählt oder sontiges ist.

Das klappt mit:

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

leider nur mittelmäßig.

Beispiel:

'''''''''''''''''''''''''''''''''''''1.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle B1 bis B2 

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = Keine MsgBox - richtig

'''''''''''''''''''''''''''''''''''''2.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle A1 bis A10  

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = MsgBox erscheint - richtig

'''''''''''''''''''''''''''''''''''''3.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle A1 bis B1  

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = keine MsgBox - falsch, das soll nicht passieren

'''''''''''''''''''''''''''''''''''''4.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle A1 bis C1  

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = keine MsgBox - falsch, das soll nicht passieren

'''''''''''''''''''''''''''''''''''''4.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle B1 bis B15  

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = keine MsgBox - falsch, das soll nicht passieren

Wie schaff ich es, dass die MsgBox immer dann auftaucht, wenn mindestens eine Zelle nicht im Bereich ist?
Also der Markierte Bereich MUSS mit jeder Zelle im Definierten Bereich liegen.

Und eine Lösung ohne 'Split' oder Umwege wäre mir lieb, außer es gibt halt keine andere xD

PC, Computer, Microsoft Excel, programmieren, VBA, VBA Programmierung, Range, VBA Excel

Meistgelesene Beiträge zum Thema Microsoft Excel