Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Produktionplan erstellen
#1
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


Angehängte Dateien Thumbnail(s)
       
Antworten Top
#2
Hi Revo,

bitte keine Bildchen, sondern eine Beispieldatei.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
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


Angehängte Dateien
.xlsx   Muster.xlsx (Größe: 16,75 KB / Downloads: 16)
Antworten Top
#5
Hat niemand eine Idee? :22:
Antworten Top
#6
Hat jemand  eine Idee wer mir bei meinem Problem weiterhelfen könnte?
Antworten Top
#7
Ich hab mich mal daran versucht, schau mal ob du damit was anfangen kannst...
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#8
Hallo,

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

Viele Grüße,
Bernd P
Antworten Top
#9
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Revo91
Antworten Top
#10
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


.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Revo91
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste