Gruppe
UDF
Bereich
DatumUndZeit
Thema
Ermittlung der jeweiligen Arbeitsschicht
Problem
Wie kann ich Schichten nach verschiedenen Kriterien ermitteln?
Lösung
Geben Sie die nachfolgende benutzerdefinierte Funktion in ein Standardmodul ein.
3. Woche: Mo+Di, Fr+Sa = Frühschicht
Geben Sie die nachfolgende benutzerdefinierte Funktion in ein Standardmodul ein.
StandardModule: basMain
Function Schicht(datStart As Date, datAct As Date) As String
Dim datWeek As Date
datWeek = (datAct - datStart) Mod 21
Select Case datWeek
Case Is < 7
If WeekDay(datAct) < 6 And WeekDay(datAct) > 1 Then
Schicht = "Frühschicht"
End If
Case Is < 14
If WeekDay(datAct) > 3 And WeekDay(datAct) < 7 Then
Schicht = "Spätschicht"
End If
Case Else
If WeekDay(datAct) = 2 Or WeekDay(datAct) = 3 Then
Schicht = "Spätschicht"
ElseIf WeekDay(datAct) = 6 Or WeekDay(datAct) = 7 Then
Schicht = "Frühschicht"
End If
End Select
End Function