Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
204to208
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
204to208
204to208
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Stundenzuordnung

Stundenzuordnung
19.01.2003 12:00:57
Rainer Löffler
In einer Excel Arbeitsmappe werden auf verschiedenen Blättern Schichtberichte erstellt ( F 06:00-14:00, S 14:00-22:00, N 22:00-06:00)
In den Schichtberichten werden Ausfall- und Störzeiten erfaßt z.B. 06:30 - 15:00.
Die sich in der selben Mappe befindliche Tageszusammenfassung erfordert eine Zuordnung dieser Zeiten nach dem Zyklus
F 00:00-08:00, S 08:00-16:00, N 16:00-00:00
(nach dem Beispiel oben 1,5h für F,9h für S )
Wer kann mir helfen?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Stundenzuordnung
19.01.2003 13:11:58
M@x
Hallo Rainer,
zumindest für einen Außenstehenden entsteht hier etwas verwirrung:
einmal ist F:von 06:00-14:00 dann ist F von 00:00-8:00 also wie jetzt?? und was passiert mit Störzeiten die über Mitternacht gehen??

Gruss

M@x

Re: Stundenzuordnung
19.01.2003 15:16:51
Steffan
Hallo Rainer,

wenn ich Dich richtig verstanden habe willst Du wissen wieviel Stunden eines Zeitbereiches innerhalb eines definierten anderen Zeitbereiches (Früh-, Spät- oder Nachtschicht) liegen?! Falls Deine Zelleinträge genauso wie von Dir dargestellt sind (Leerzeichen sind unerheblich) könnte Dir diese Funktion helfen:

Function schicht(sZeit As String, Optional sArt As String) As Single
'string zerlegen
Dim startZ As Date, endeZ As Date
startZ = Mid(sZeit, InStr(1, sZeit, ":") - 2, 5)
endeZ = Mid(sZeit, InStrRev(sZeit, ":") - 2, 5)
' Kontrollieren, ob der Zeitbereich über Mitternacht geht
If endeZ < startZ Then endeZ = endeZ + 1

'festzeiten
Dim time1 As Date, time2 As Date, time3 As Date
time1 = "00:00": time2 = "08:00": time3 = "16:00"

'Art der zu ermittelnden Schicht
'Wenn nicht angegeben, dann aus ersten Zeichen des Zellinhaltes ermitteln
If sArt = Empty Then sArt = Left(sZeit, 1)
Select Case LCase(sArt)
Case "f"
'Frühschicht
bStartZ = time1: bEndeZ = time2
Case "s"
'Spätschicht
bStartZ = time2: bEndeZ = time3
Case "n"
'Nachschicht -> Bereich enmdet am nächsten Tag
bStartZ = time3: bEndeZ = time1 + 1
Case Else
'Schichtart kann nicht ermittelt werden
MsgBox "Falsche oder fehlende Argumente!" & Chr(13) & Chr(13) & _
"Verwenden Sie die Funktion =SCHICHT() folgendermaßen:" & Chr(13) & _
"=SCHICHT(Zelle;Art) " & Chr(13) & _
Chr(13) & "Argumente:" & Chr(13) & _
"- Zelle: ein Zellbezug (z.B.: A1)" & Chr(13) & _
"- Art: Schichtzuordnung 'F', 'S' oder 'N'" & Chr(13) & _
"Hinweis:" & Chr(13) & _
"Das Argument Art kann entfallen, wenn die Schichtzuordnung " & Chr(13) & _
"an 1. Stelle der Zelle steht.", _
vbInformation, "Schichtzuordnung"
Exit Function
End Select

'Berechnung der Zugehörigkeit
If startZ >= bStartZ And startZ < bEndeZ Then
If endeZ <= bEndeZ Then schicht = 24 * (endeZ - startZ): Exit Function
If endeZ > bEndeZ Then schicht = 24 * (bEndeZ - startZ): Exit Function
End If
If startZ < bStartZ And endeZ > bStartZ Then
If endeZ <= bEndeZ Then schicht = 24 * (endeZ - bStartZ): Exit Function
If endeZ > bEndeZ Then schicht = 24 * (bEndeZ - bStartZ): Exit Function
End If
schicht = 0
End Function

Diese Funktion gehört in ein allgemeines Modul in Deiner Mappe im VB-Editor.
Erläuterung zur Funktion:
Die Funktion verwendet die Argumente 'Zelle' (erforderlich) und 'Art' (optional). 'Zelle' ist die Zelle, in der Dein Zeitbereich eingetragen ist. 'Art' kann "F", "S" oder "N" sein. Wenn Art nicht angegeben wurde, wird versucht die Art aus dem ersten Zeichen in 'Zelle' zu extrahieren.
Beispiele:
in A1 steht: "F 06:00-14:00" ; SCHICHT(A1) liefert 2
in A1 steht: "06:30-15:00"; SCHICHT(A1;"F") liefert 1,5

Löst das Dein Problem?
Steffan.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige