Hallo Uwe,
Erstelle in VBA ein neues Modul mit den Namen "Turnberechnung" und füge folgene Formeln ein.
Function wo_tag(akt_datum As Date) As String
wo_tag = Format(akt_datum, "ddd")
End Function
Function l_sch_gr(sch_gr As Integer) As Integer
Select Case sch_gr
Case 1
l_sch_gr = 1
Case 2
l_sch_gr = 2
Case 3
l_sch_gr = 5
Case 4
l_sch_gr = 3
Case 5
l_sch_gr = 4
End Select
End Function
Function schicht(akt_datum As Date, sch_gr As Integer) As String
Const turn = "FFNNN SS FFNN SSS FFFNN "
Dim shift As Integer
shift = l_sch_gr(sch_gr) * 7
schicht = Mid(turn, 1 + ((shift + akt_datum - 4) Mod 35), 1)
' schicht = akt_datum Mod 35
End Function
Nun habe ich eine Formel in die Zellen geschrieben wo die Schichten erscheinen und Zwar folgende : =Schicht(DATUM(Jahr;Monat;Tag);Schicht)
Du mußt nur noch ein paar Modifizierungen im Modul "Turnberechnung" vornehmen.
Das wären :
In der Zeile Const turn = "FFNNN SS FFNN SSS FFFNN "
Hier bitte dein Schichtsystem eintragen, für Freie Tage bitte Leertaste benutzen,und zwar so das der Turn einmal rum ist.
In der Zeile schicht = Mid(turn, 1 + ((shift + akt_datum - 4) Mod 35), 1)
Hier bitte die 35 ersetzen, dies ist die Anzahl der Tage wie lange ein Turn ist.
Mit der -4 stellst Du ein an welchen Tag der Turn beginnt.
Mfg
Andreas Bauer