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.

Maschinenbelegungsplan
#1
Hallo zusammen,


ich bin derzeit etwas verzweifelt dabei einen Maschinenbelegungsplan zu erstellen, welcher automatisch die noch freien Kapazitäten mit vorhandenen Aufträgen füllen soll.

Es gibt fixe Artikel die nur auf bestimmten Maschinen laufen und Artikel die auf allen Maschinen laufen können und nach den noch freien Kapazitäten verteilt werden können.
Die Belegungszeit mit der kleinsten Differenz zur freien Kapazität suche ich mit =MAX(WENN($B2:$B16
Etwas kompliziert ich weiß  Huh  Hoffe aber das es einigermaßen verständlich ist. Im Anhang füge ich noch die Datei mit einigen Kommentaren hinzu.

Achja und es sollte möglichst flexibel sein, da sich die Belegungszeiten auch schnell wieder ändern können.

Ich wäre für jeden Tipp sehr dankbar.

Vielen Dank schon mal vorab.


Angehängte Dateien
.xlsx   Maschinenbelegung.xlsx (Größe: 13,62 KB / Downloads: 27)
Antworten Top
#2
Hallo

wenn ich mal ehrlich bin, aus den vielen Daten werde ich überhaupt nicht schlau!!!
Ich sehe Belegung mit krummen Kommazahlen, das können ja keine Stückzahlen sein!  Verstehen tue ich da nix ...

mfg Gast 123
Antworten Top
#3
Hallo Gast123,

vielleicht habe ich es etwas umständlich erklärt.

Die Belegung ist die Belegungszeit also die benötigten Maschinenstunden.
Bsp.: Artikel bzw. Auftrag 1 benötigt 165,74 Std. für die Fertigstellung und jede Maschine hat eine Gesamtkapazität von 500 Stunden pro Monat.

Die fixen Aufträge (in blau hinterlegt) dürfen nur auf den vorgegebenen Maschinen laufen, daraus berechnet sich dann die benötigte Maschinenanzahl und die noch freie Kapazität die für weitere Aufträge zur Verfügung steht (grau hinterlegte Zellen). Das heißt ich muss nach der kleinsten Differenz zwischen freier Kapazität und der benötigten Belegungszeit suchen.
Bsp.: freie Kapazität 310,16 Std. - 285,19 Std. (Artikel 11) = 24,97 Std.  Das passt auch soweit. 
Da der Auftrag nun vergeben wurde, darf er aber für die weiteren Berechnungen nicht berücksichtigt werden (z.B. für Maschine M6 wie im Beispiel). Hier müsste dann Artikel 2  mit 269,27 Std. stehen.


Ich hoffe es ist jetzt etwas klarer was ich damit meine.

Viele Grüße und Danke schon mal vorab!
Antworten Top
#4
Moin

Für mich sind da noch andere Dinge unklar.

Es könnte natürlich sein dass zwei Maschinen die selbe Kapazität haben, aber ich würde grundsätzlich für jede Maschine eine eigene Kapazität festlegen. Außerdem ändert sich die Kapazität auch mit jedem Monat (unterschiedliche Anzahl Arbeitstage).

Wieso kannst du in H26 eine weitere Maschine M6 herbeizaubern? Gibt es ein unbegrenztes Lager mit weiteren Maschinen, die man einfach so aufstellen und anschließen kann?
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#5
Hallo,

jede Maschine hat eine Kapazität von 500 Stunden (pro Monat), die Kapazität ändert sich auch nicht jeden Monat, die bleibt so.  


M5 und M6 sind verschiedene Maschinentypen und es können mehrere Maschinen eines jeden Typs aufgestellt werden, tatsächlich berechne ich im ersten step die Anzahl der benötigten Maschinen.
Da es schwierig wird 0,38 Maschinen aufzustellen ;) muss ich aufrunden. Daraus ergibt sich dann eben eine noch verfügbare Kapazität von 0,62 bzw. 310 Std. für Maschine M5 und 428 Std. für Maschine M6.
Nun möchte ich überprüfen welche zusätzlichen Aufträge (1-15) noch eingetaktet werden können um die Maschine möglichst vollständig auszulasten.

Ich suche also mit =MAX(WENN($B2:$B16 Mein Problem ist jetzt allerdings, dass mit der o.g. Formel für beide Maschinen der gleiche Auftrag zugeteilt wird, ich müsste also genau diesen Auftrag bspw. für Maschine M6 sperren bzw. aus der Berechnung ausschließen. 
In Zelle H29 müsste also Auftrag (bzw. Artikel) Nr. 12 mit 269,91 Std. stehen.

Ich hoffe es ist jetzt etwas verständlicher und sorry für die Verwirrung  :20:


Viele Grüße
Antworten Top
#6
Hallöchen,

nur mal so ein Gedanke. Auf excelformeln.de findest Du z.B. eine Formellösung für einen Spezialfilter ohne Duplikate. Die verwendeten Formeln zeigen auf, wie man z.B. doppelte Übernahmen in eine Spalte verhindern kann. Eventuell kann man daraus einen Ansatz ableiten.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hallo

ein Formellösung ist sicher auch nicht schlecht, hier mal meine Beispieldatei. Vielleicht ein wenig umstaendlich, weil nicht vollautomatisch!  Ich denk der Mensch sollte auch noch etwas zum mit entscheiden haben.

Berechnet werden pro Maschine 4 Lösungsmöglichkeiten. Nach Möglichkeit an der Obergrenze das max. nur 10 Stunden Rest verbleiben. Da ich nicht weiss welche Auftraege vorrangig oder wichtiger sind kann man dann selbst entscheiden welche Variante man nimmt. Erst wenn sie übernommen wurde kann man weiter berechnen. 

Ich habe es mal für vier Maschinen komplett durchgerechnet. Die Produktion geht zu fast 100 % auf wenn M3 + M4 mitlaufen. 
Weil es ein Erstentwurf ist kann es noch Fehler geben. Würde mich freuen wenn es auch mit anderen Daten klappt.

mfg Gast 123


Angehängte Dateien
.xlsm   Maschinenbelegung.xlsm (Größe: 48,91 KB / Downloads: 10)
Antworten Top
#8
Hallo     Sorry, ich habe vergessen das Programm im Detail zu erklaeren.

Daten Übertragen:   dafür muss der Cursor in der Spalte stehen, aus der man kopieren will. Bei ungültiger Spalte kommt eine Meldung!
Bei Daten übertragen muss der Code noch mal geaendert werden, ich hatte die Maschinen M1 + M2 vergessen! Ist unten korrigiert. 

Datenbereich grau markiert:  das Programm holt sich NUR Daten aus dem grau markierten Bereich, prüft den Farbcode Index 15, Farbe hellgrau 
Der jetzt von Zeile 17-23 markierte Bereich kann nach oben problemlos vergrössert werden. Zu Bedenken ist das dann die Formeln in Zeile 24 und 28 nicht mehr stimmen! Die passt das Makro NICHT an! Die Summenformeln in Zelle N2 bis R2 kann man beliebig nach unten verlaengern. 

Unklar war mir ob es immer dieser Rang Bereich bleibt, oder ob er sich nach unten verlaengern kann? Beim Daten holen ist das kein Problem, da orientiert sich das Makro an der Innenfarbe hellgrau, Zellen mit "x". Nur die Formeln stimmen dann nicht mehr! In Zelle  G24, H24 habe ich die alten Formeln durch Summenformel ersetzt!

Programmfunktion:   das Makro holt sich alle Daten aus hellgrauen Zellen, und prüft ab M5 ob bereits Auswertungen vorliegen?  Wenn ja werden die Daten übersprungen. In der Hilfsspalte sortiere ich zuerst den höchsten Wert nach oben, dann erfolgt die Auswertung mit löschen der bereits vergebenen Zahlen, und Rücksortieren nach Artikel Nummer. Das ist alles.

mfg Gast 123

Code:
Sub Daten_Übernehmen()
  Maschine = Range("K1").Value
  spa = ActiveCell.Column
  If spa < 15 Or spa > 18 Then MsgBox "Ungültige Spalte!": Exit Sub
  lz1 = Cells(Rows.Count, 12).End(xlUp).Row
  Cells(3, spa).Resize(lz1 - 2, 1).Copy
  If Maschine = "M6" Then Range("H2").PasteSpecial xlPasteValues
  If Maschine = "M5" Then Range("G2").PasteSpecial xlPasteValues
  If Maschine = "M4" Then Range("F2").PasteSpecial xlPasteValues
  If Maschine = "M3" Then Range("E2").PasteSpecial xlPasteValues
  If Maschine = "M2" Then Range("D2").PasteSpecial xlPasteValues
  If Maschine = "M1" Then Range("C2").PasteSpecial xlPasteValues
 
  If Maschine = "M6" Then Columns("H").Replace "x", ""
  If Maschine = "M5" Then Columns("G").Replace "x", ""
  If Maschine = "M4" Then Columns("F").Replace "x", ""
  If Maschine = "M3" Then Columns("E").Replace "x", ""
  If Maschine = "M2" Then Columns("D").Replace "x", ""
  If Maschine = "M1" Then Columns("C").Replace "x", ""
  Application.CutCopyMode = False
End Sub
Antworten Top


Gehe zu:


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