Clever-Excel-Forum

Normale Version: Produktionplan erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Zusammen,

 
ich arbeite derzeit in einem kleineren Unternehmen und möchte dort mithilfe einer Excel Tabelle die Steuerung der Produktion verbessern.
 
Mein Ziel ist es mithilfe der erstellten Excel- Liste genauere Fertigstellungszeitpunkte (Stundengenau) anzugeben.
 
Gegeben:
-          Jahreskalender mit täglichen Arbeitszeiten / Feiertagen
-          Dauer des Fertigungsauftrages in h
-          Täglich vorhandene Arbeitszeit
 
Gesucht:
-          Fertigstellungszeitpunkt unter Berücksichtigung der täglichen Arbeitszeit
-          Bei einer Zeitlichen Änderung im Kalender oder der Auftragsdauer sollte dies fortlaufend mit eingerechnet werden
 
Derzeit kann ich leider von 24h ausgehen und Ich weiß leider nicht wie ich  einen genaueren Termin berechnen kann.
Das heißt er verrechnet mir pro Tag jeweils 1,5h Zuviel oder mehr, wenn ich eine Woche mit 2 oder 1 Schicht rechnen möchte.
 
Somit suche ich eigentlich nach einer Formel bzw. Programmierung die es mir ermöglicht, das mein Plan neue Termine sofort berechnen kann.
Ähnlich wie MS- Projekt das ermöglicht.
 
Vielleicht weis jemand von euch eine Lösung.
 
Vielen Dank und Gruß
Revo
Hi Revo,

bitte keine Bildchen, sondern eine Beispieldatei.
Hallöchen,

Egal ob als Bild oder Datei, Deine Daten passen aber eher zu einem 3Schichtsystem - 22,5 h am vollen Tag - als zu einem 2Schichtsystem oder arbeitet Ihr 11,25h am Tag? Auch die 7,5 h a Sonntag passen nicht, wenn es dabei um die Nachtschicht eines 3SchichtSystems geht. Da fallen am Sonntag doch in der Regel nur 2 h an und dann wird bis Montag früh 6 Uhr gearbeitet - ergibt abzüglich 30 Minuten Pause dann die 7,5 h. Man müsste auch genau wissen, wann Ihr die 2 Schichten fahrt, z.B. ab 6:00 Uhr oder 5:30, und analog zu Deinem Bild wie die verfügbare Zeit ist und ob z.B. bei der Uhrzeitermittlung Pausen zu berücksichtigen sind …

Wir hatten schon mal ein ähnliches Thema - schaue mal in diesen Thread, ob das für Deine Zwecke passt oder passend gemacht werden kann Smile

Auftragsende berechnen
Hallo,
vielen Dank. Dieser Link hat mir sehr weitergeholfen (siehe Zitat) allerdings sind meine Kenntnisse in der VBA sehr schlecht. Huh
Deshalb tu ich mich sehr schwer dies auf mich anzupassen.

Die Feiertagsregelung benötige ich nicht (kann ich ja dann auch im Arbeitskalender eintragen). Allerdings sollen alle Zeiten flexible berechnet werden, je nachdem wie viel Zeit am entsprechenden Tag zur Verfügung steht. 
Außerdem soll die Berechnung bei einer Änderung der Reihenfolge oder Änderung des Startdatums, durch Knopfdruck eine Neuberechnung stattfinden. Es ist möglich das Aufträge auch länger als 24 benötigen.

Wäre echt klasse wenn ihr mir hier weiterhelfen könnt. Heart

Vielen Dank schon mal :)


Zitat:Sub Zeitberechnung()

lr = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 2 To lr
        Cells(i, "C") = Cells(i, "A") + Cells(i, "B")
        'Feiertag
'Beginn:
        Tadd = 0
        wtag = Weekday(Int(Cells(i, "C")), 2)
Select Case wtag
    Case 1
        If (Cells(i, "C") - Int(Cells(i, "C"))) < 0.25 Then Tadd = 0.25
    Case 6
        If (Cells(i, "C") - (Int(Cells(i, "C")))) > 0.25 Then
        Tadd = 0.75 + 1 + 0.25 'von Sa 6:00 auf Mo 6:00 verschieben
        End If
    Case 7
        Tadd = 1
End Select

        Cells(i, "C") = Cells(i, "C") + Tadd
    Next i
End Sub
Hat niemand eine Idee? :22:
Hat jemand  eine Idee wer mir bei meinem Problem weiterhelfen könnte?
Ich hab mich mal daran versucht, schau mal ob du damit was anfangen kannst...
Hallo,

Vielleicht hilft dieser Ansatz weiter?:
https://www.clever-excel-forum.de/Thread...=Sulprobil

Viele Grüße,
Bernd P
Hallöchen,

hier mal ein Anfang. Der Code ist allerdings erst mal fest auf Dein Anfangsdatum und die beiden Tabellengrößen programmiert. Ich muss jetzt erst mal in die Falle, morgen früh geht's gegen 5 wieder hoch … Wenn das bis dahin keiner ausbaut kommt von mir morgen Abend der Rest Smile

Code:
Sub test()
Dim iCnt%, kCnt%, iAuf#, iHab#

kCnt = 7
For iCnt = 3 To 24
iAuf = iAuf + Cells(iCnt, 2)
Do While iHab < iAuf
  iHab = iHab + Cells(kCnt, 11) - Cells(kCnt, 10) + (Cells(kCnt, 10) > 0) * (Cells(kCnt, 11) = 0)
  kCnt = kCnt + 1
  If kCnt > 35 Then Exit Do
Loop
Cells(iCnt, 3) = Cells(kCnt - 1, 8) + Cells(kCnt - 1, 11) - (iHab - iAuf)
Cells(iCnt, 4) = iAuf 'Summe Auftragszeiten zur Kontrolle in Spalte D
Next
End Sub
Hallöchen,

hier jetzt der fertige und kommentierte COde.

Modul Modul1
Option Explicit 
 
Sub test() 
'Variablendeklarationen Integer, Double 
Dim iCnt%, kCnt%, iAuf#, iHab# 
'in Spalte H Zeile mit Startdatum aus C2 ermitteln 
kCnt = Columns("H:H").Find(What:=Cells(2, 3).Value, After:=Cells(2, 8), LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Row 
'Schleife ueber alle Zeilen mit Auftraegen ab Zeile 3 
'Beachte: Unter den Auftraegen darf in Spalte A nix stehen 
For iCnt = 3 To Cells(Rows.Count, 1).End(xlUp).Row 
  'Auftragszeit kumulativ ermitteln 
  iAuf = iAuf + Cells(iCnt, 2) 
  'Schleife solange die verbrauchte Zeit kleiner als die Auftragszeit ist 
  Do While iHab < iAuf 
    'verbrauchte Zeit kumuliert ermitteln + Korrektur 1 bei Tagesanfang > 0:00 und Tagesende = 0:00 
    iHab = iHab + Cells(kCnt, 11) - Cells(kCnt, 10) + (Cells(kCnt, 10) > 0) * (Cells(kCnt, 11) = 0) 
    'Zeilenzaehler hochsetzen 
    kCnt = kCnt + 1 
    'Schleife verlassen wenn Ende der Zeittabelle erreicht ist 
    'anhand Spalte H - unter den Eintragungen darf nix mehr stehen! 
    If kCnt > Cells(Rows.Count, 8).End(xlUp).Row Then Exit Do 
  'Ende Schleife solange die verbrauchte Zeit kleiner als die Auftragszeit ist 
  Loop 
  'Ende ermitteln aus Datum der vorherigen Zelle und restlicher Auftragszeit fuer den Tag 
  '(ergibt sich aus Differenz zwischen Auftragszeit und verbrauchter Zeit iHab-iAuf) 
  Cells(iCnt, 3) = Cells(kCnt - 1, 8) + Cells(kCnt - 1, 11) - (iHab - iAuf) + (Cells(kCnt - 1, 10) > 0) * (Cells(kCnt - 1, 11) = 0) 
  'Auftragszeit kumuliert in Spalte D ausgeben - Codezeile kann geloescht werden 
  Cells(iCnt, 4) = iAuf 
'Ende Schleife ueber alle Zeilen mit Auftraegen ab Zeile 3 
Next 
End Sub 
 
 


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Seiten: 1 2