Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Schichtwechsel bei 4 Schichten berechnen
zurück: Nach dem Speichern automatisch Email versenden weiter: Datum/Zeit mit Wert vergleichen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Sickboy
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Jun 2011, 14:13
Rufname: Andre

Schichtwechsel bei 4 Schichten berechnen - Schichtwechsel bei 4 Schichten berechnen

Nach oben
       Version: Office 2003

Hallo,

ich hätte da ein kleines Problem wo ich einfach nicht weiterkomme oder einfach den Wald vor lauter Bäumen nicht mehr sehe.

Zustand =

4 Schichtrytmus d.h -> 06:00:00 - 14:00:00 Uhr Frühschicht
14:00:00 - 22:00:00 Uhr Spätschicht
22:00:00 - 06:00:00 Uhr Nachtschicht
6 Tage Woche
Die 4. Schicht hat eine Woche frei und fängt dann nach der Freiwoche mit Nachtschicht an -> 6 Tage lang dann 6 Tage lang Spätschicht dann 6 Tage lang Frühschicht und dann wieder eine Woche frei

Jetzt müsste jedes mal wenn ich etwas berechne und abspeicher zu aktuellen Zeit / Tag die richtige Schicht eingetragen werden

d.h jetzt haben wir 14:11:00 und meine Schicht ("C") hat Freiwoche
Schicht "D" hat Frühschicht
Schicht "A" hat Spätschicht
Schicht "B" hat Nachtschicht

ich hoffe ich konnte mich halbwegs verständlich ausdrücken ;)

bin für jeden Lösungsansatz dankbar .......
losgehts
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Jun 2011, 16:10
Rufname:


AW: Schichtwechsel bei 4 Schichten berechnen - AW: Schichtwechsel bei 4 Schichten berechnen

Nach oben
       Version: Office 2003

Hallo Sickboy,

da du im VBA-Forum postest gehe ich davon aus, dass du keine Formellösung anstrebst (geht nämlich auch ohne VBA).

Hier eine Funktion:
Code:
Function dieSchicht(Zeit As Date, Schicht As String)
Dim Tag As Long
Tag = CLng(CDate(Format(Zeit, "dd.mm.yyyy")))

Select Case UCase(Schicht)
   Case "A"
      dieSchicht = Array("Frei", "Nacht", "Spät", "Früh")(((Tag - Weekday(Zeit, 0)) Mod 28) / 7)
   Case "B"
      dieSchicht = Array("Früh", "Frei", "Nacht", "Spät")(((Tag - Weekday(Zeit, 0)) Mod 28) / 7)
   Case "C"
      dieSchicht = Array("Spät", "Früh", "Frei", "Nacht")(((Tag - Weekday(Zeit, 0)) Mod 28) / 7)
   Case "D"
      dieSchicht = Array("Nacht", "Spät", "Früh", "Frei")(((Tag - Weekday(Zeit, 0)) Mod 28) / 7)
End Select

End Function

Sub Testen()
   MsgBox "Die Schicht D hat heute: " & dieSchicht(Now, "D")
End Sub


Diese Funktion kannst du auch im Tabellenblatt benutzen:
=dieSchiecht(A1;A2)
Inhalt von A1: Datum
Inhalt von A2: Schicht also "A", "B", "C", "D"

Ich hab's nicht so super ausgiebig getestet. Bitte kontrollier das noch einmal.

klappt's?
Grüße, Ulrich

_________________
Ich freue mich über jede Art von Feedback
Sickboy
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Jun 2011, 16:21
Rufname: Andre

AW: Schichtwechsel bei 4 Schichten berechnen - AW: Schichtwechsel bei 4 Schichten berechnen

Nach oben
       Version: Office 2003

Super klappt wunderbar nur wie bringe ich das mit der Uhrzeit zusammen d.h wenn jetzt 13:59:59 ist dann ist ja Frühschicht usw...

Bis jetzt habe ich Folgende Lösung gebastelt ( Vorsicht Anfänger !!! bin aber noch nicht ganz fertig)
Code:

Dim Datum, Wochentag
Datum = Date
Wochentag = Weekday(Datum)

 If Worksheets("Tabelle1").Range("B1").Value = 23 Or 27 Or 31 Or 35 Or 39 Or 43 Or 47 Or 51 Then
  If Time > #6:00:00 AM# And Time < #2:00:00 PM# Then
  Schicht = "Schicht D - Frühschicht"
  End If
   If Time > #2:00:00 PM# And Time < #10:00:00 PM# Then
   Schicht = "Schicht A - Spätschicht"
   End If
    If Time > #10:00:00 PM# And Time < #6:00:00 AM# Then
    Schicht = " Schicht B - Nachtschicht"
    End If
     If Wochentag = 1 Then
      If Time > #10:00:00 PM# And Time < #6:00:00 AM# Then
      Schicht = "Schicht D - Nachtschicht"
      End If
       If Time > #6:00:00 AM# And Time < #2:00:00 PM# Then
       Schicht = "Schicht A - Frühschicht"
       End If
        If Time > #2:00:00 PM# And Time < #10:00:00 PM# Then
        Schicht = "Schicht B - Spätschicht"
        End If
 End If
 
    Else

     If Worksheets("Tabelle1").Range("B1").Value = 24 Or 28 Or 32 Or 36 Or 40 Or 44 Or 48 Or 52 Then
      SchichtC = "C = NS"
      SchichtA = "A = FS"
      SchichtB = "B = SS"
       If Wochentag = 1 Then
        SchichtC = "C = SS"
        SchichtA = "A = NS"
        SchichtB = "B = FS"
     End If

      Else

       If Worksheets("Tabelle1").Range("B1").Value = 25 Or 29 Or 33 Or 37 Or 41 Or 45 Or 49 Then
        SchichtC = "C = SS"
        SchichtD = "D = NS"
        SchichtB = "B = FS"
         If Wochentag = 1 Then
          SchichtC = "C = FS"
          SchichtD = "D = SS"
          SchichtB = "B = NS"
       End If

        Else

         If Worksheets("Tabelle1").Range("B1").Value = 26 Or 30 Or 34 Or 38 Or 42 Or 46 Or 50 Then
          SchichtC = "C = FS"
          SchichtD = "D = SS"
          SchichtA = "A = NS"
           If Wochentag = 1 Then
            SchichtC = "C = FS"
            SchichtD = "D = SS"
            SchichtA = "A = NS"
           End If
        End If
     End If
  End If
End If
 
MsgBox Schicht

End Sub


In Tabelle1 Range B1 steht =KÜRZEN((A1-DATUM(JAHR(A1+3-REST(A1-2;7));1;REST(A1-2;7)-9))/7)

oder bin ich jetzt mit meinem Ansatz auf dem Holzweg???
losgehts
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Jun 2011, 17:07
Rufname:

AW: Schichtwechsel bei 4 Schichten berechnen - AW: Schichtwechsel bei 4 Schichten berechnen

Nach oben
       Version: Office 2003

Hallo,

ich habe mir deinen Code nicht angeschaut (sorry).

Das hatte ich falsch verstanden (obwohl du es so gut geschildert hast! Embarassed).

Hier eine Funktion, die dir die Schicht ausgibt, wenn du ihr ein Datum+Zeit übergibst:
Code:
Function welcheSchicht(Zeit, Optional Versatz As Integer = 0)
Dim Woche As Integer, arSchicht()

Woche = Application.WorksheetFunction.WeekNum(CDate(Zeit), 2) + Versatz
arSchicht = Array("A", "B", "C", "D")

Select Case CDbl(TimeValue(Zeit)) * 24
   Case Is < 6    'Nacht
      welcheSchicht = arSchicht((Woche + 1) Mod 4)
   
   Case Is < 14   'Früh
      welcheSchicht = arSchicht((Woche + 3) Mod 4)

   Case Is < 22   'Spät
      welcheSchicht = arSchicht((Woche) Mod 4)
   
   Case Is <= 24  'Nacht
      welcheSchicht = arSchicht((Woche + 1) Mod 4)

End Select
End Function


Aufrufen kannst du sie aus dem Tabellenblatt (=welcheSchicht(A1), mit dem Datum und Uhrzeit in A1) oder per Code:
Code:
Sub TESTenn()
   Debug.Print welcheSchicht("10.06.2011 23:00")
   Debug.Print welcheSchicht(Now())
End Sub


Mit dem Parameter Versatz kannst du alle Schichten um eine bestimmte Anzahl von Wochen "verschieben" (musst du aber hoffentlich nicht).

klappt's?
Grüße, Ulrich

_________________
Ich freue mich über jede Art von Feedback
Sickboy
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Jun 2011, 17:15
Rufname: Andre

AW: Schichtwechsel bei 4 Schichten berechnen - AW: Schichtwechsel bei 4 Schichten berechnen

Nach oben
       Version: Office 2003

Da bekomme ich einen Laufzeitfehler 438
bei
Woche = Application.WorksheetFunction.WeekNum(CDate(Zeit), 2) + Versatz
losgehts
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Jun 2011, 18:56
Rufname:

AW: Schichtwechsel bei 4 Schichten berechnen - AW: Schichtwechsel bei 4 Schichten berechnen

Nach oben
       Version: Office 2003

Hallo,

das könnte daran liegen, dass dein erstes Argument nicht als Datum interpretiert werden kann.

Hier noch eine etwas verbesserte Version:
Code:
Function welcheSchicht(Zeit, Optional Versatz As Integer = 0)
Dim Woche As Integer, arSchicht()

Woche = Application.WorksheetFunction.WeekNum(CDate(Zeit) - 6 / 24, 2) + Versatz
arSchicht = Array("A", "B", "C", "D")

Select Case CDbl(TimeValue(Zeit)) * 24
   Case Is < 6    'Nacht
      welcheSchicht2 = arSchicht((Woche + 1) Mod 4)
   
   Case Is < 14   'Früh
      welcheSchicht2 = arSchicht((Woche + 3) Mod 4)

   Case Is < 22   'Spät
      welcheSchicht2 = arSchicht((Woche) Mod 4)
   
   Case Is <= 24  'Nacht
      welcheSchicht2 = arSchicht((Woche + 1) Mod 4)

End Select
End Function


Schönes WE, Ulrich

_________________
Ich freue mich über jede Art von Feedback
Sickboy
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Jun 2011, 19:57
Rufname: Andre


AW: Schichtwechsel bei 4 Schichten berechnen - AW: Schichtwechsel bei 4 Schichten berechnen

Nach oben
       Version: Office 2003

Thx
funzt jetzt !!!!
vielen Dank und schönes WE
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Automatisches Berechnen der Klassenzugehörigkeit 2 Hubert22 1530 18. März 2006, 14:25
hubert22 Automatisches Berechnen der Klassenzugehörigkeit
Keine neuen Beiträge Excel Formeln: Monate berechnen! 2 PietGlocke 4389 15. März 2006, 10:32
PietGlocke Monate berechnen!
Keine neuen Beiträge Excel Formeln: Datumsdifferenz berechnen zur Erstellung einer Prognose 2 anewbie 2451 12. März 2006, 20:09
anewbie Datumsdifferenz berechnen zur Erstellung einer Prognose
Keine neuen Beiträge Excel Formeln: Summe berechnen 1 anarkie 945 06. Feb 2006, 20:52
Hübi Summe berechnen
Keine neuen Beiträge Excel Formeln: Wert zwischen zwei Zellbereichen berechnen 6 Boris 1651 13. Dez 2005, 20:12
Wuselmann Wert zwischen zwei Zellbereichen berechnen
Keine neuen Beiträge Excel Formeln: Berechnen von überstunden und Tagen 1 DodgeViper 1766 07. Dez 2005, 19:06
ae Berechnen von überstunden und Tagen
Keine neuen Beiträge Excel Formeln: Arbeitszeit berechnen 1 keksi 1830 11. Nov 2005, 22:45
Tobias113 Arbeitszeit berechnen
Keine neuen Beiträge Excel Formeln: Stunden berechnen 2 Ein Anfänger 3391 09. Nov 2005, 20:32
Ein Anfänger Stunden berechnen
Keine neuen Beiträge Excel Formeln: Arbeitstag berechnen 4 Gast 2157 26. Okt 2005, 11:09
Gast Arbeitstag berechnen
Keine neuen Beiträge Excel Formeln: Darlehenslaufzeit mit Excel berechnen 4 Blue_Whirlwind 19058 12. Jul 2005, 17:56
Günni Darlehenslaufzeit mit Excel berechnen
Keine neuen Beiträge Excel Formeln: Berechnen von Harz und Härtergemisch in Excel 6 sascha-patrick 2391 15. März 2005, 21:13
Hübi Berechnen von Harz und Härtergemisch in Excel
Keine neuen Beiträge Excel Formeln: Zuschläge berechnen 7 leer 3509 21. Feb 2005, 22:41
ae Zuschläge berechnen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme