Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Produktionsplanung als Gantt-Chart

Forumthread: Produktionsplanung als Gantt-Chart

Produktionsplanung als Gantt-Chart
10.12.2024 13:11:03
NikoT
Hallo zusammen,

ich bin ganz Begeistert dieses aktive Forum gefunden zu haben - bin mal gespannt ob meine Idee umsetzbar ist :D.
Ich möchte eine Kapazitätsplanung über Excel darstellen, da wir Intern sonst keine Software zur Verfügung haben.

Die genaue Problemstellung ist in der Excel beschrieben, aber ich möchte hier noch mal grob zusammenfassen:
Ich habe ein Gantt-Diagramm aufgestellt, in der ich mittels Start und Enddatum die Balken generiere.
Allerdings würde ich gerne der Excel irgendwie "beibringen" das ein Tag 440 Minuten zur verfügung hat, und die einzelnen Aufträge unterschiedliche Durchlaufzeiten (in Minuten) haben.
Die Aufträge sollen Nacheinander abgearbeitet werden, und dadurch das Gantt-Diagramm ausfüllen.

Aus Artikelnummer und Stückzahl per SVERWEIS die Zeiten zu Extrahieren und Summieren ist kein Problem - aber der Rest geht mir irgendwie nicht in die Birne.
Ich hoffe, mir kann jemand helfen. :)

https://www.herber.de/bbs/user/174224.xlsx
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Produktionsplanung als Gantt-Chart
10.12.2024 14:04:39
MCO
Moin Niko!

Formel in E5:
=D5+WENNFEHLER(SVERWEIS(B5;Zeiten!$A$2:$F$121;3;0)*C5/440;0)


Gruß, MCO
AW: Format: Gelb
10.12.2024 14:28:40
MCO
Hi!

Für die bedingte Formatierung muss der errechnete Wert / 440 eine Ganzzahl ergeben. Das ergebnis der Formel liefert den Wert .

=GANZZAHL(SVERWEIS(B5;Zeiten!$A$2:$F$121;3;0)*C5/440)>SVERWEIS(B5;Zeiten!$A$2:$F$121;3;0)*C5/440


Allerdings hab ich jetzt keine Zeit mehr dass in die bedingte Formatierung zu fummeln.
Nach meinem Verständnis muss es in die UND-Funktion eingebracht werden.

Gruß, MCO
Anzeige
AW: Produktionsplanung als Gantt-Chart
10.12.2024 18:09:47
Sigi.21
Hallo Niko,

mit einer etwas komplexeren Formel können Produktionszeiten ermittelt werden. Dafür reichen die "normalen" Excelformeln aus.
Ich habe bei dir eine Prod.-Zeit von Mo-Fr (ohne Feiertage), je 8:00h bis 15:20h (=440 Min.) unterstellt. Das Gantt habe ich angrpasst.
https://www.herber.de/bbs/user/174229.xlsx

Gruß Sigi

Anzeige
AW: Produktionsplanung als Gantt-Chart
10.12.2024 19:32:13
Yal
Hallo Niko,

mit einem Gantt kannst Du etwas "darstellen", aber nicht berechnen.
Es müsste aufgelistet, wann was fertig sein muss und dementsprechend die spätesten Anfangszeitpunkte in reale Uhrzeiten berechnen.
Danach musst Die Aufträge auf die Mitarbeiter verteilen (Moore-Johnson-Algo), unter der Prämisse, dass nur ein Auftrag pro Mitarbeiter produziert werden kann.

Es könnte hilfreich sein (aber nicht einfach) alle Zeiten in einer endlose Minutenskala ("Minutum") zu transformieren und erst, wenn die Aufträge verteilt sind, diese Zeitskala in realen Uhrzeiten zurückzurechnen, spricht 1.1.2025 7:00 ist Minute 1, Minute 441 ist am 2.1.25 7:00 usw.

Dann kannst Du einen Gantt damit machen.

Ein solche Zeitleistenumrechnung kann wie folgt in beide Richtung berechnet werden:
Anhand einer "Minute Zero" und eine Anzahl von Minuten pro Tag kann ein Uhrzeit, bestehend aus ein Datum + Uhrzeit ein "Minutum" erzeugt werden oder umgekehrt.

Const cMinuteZero = #1/1/2025 7:00:00 AM#

Const cMinuteProTag = 440

Function DatumInMinutum(ByVal Zeit As Date) As Long
Dim AnzahlTage As Long
Dim AnzahlMinute As Long

AnzahlTage = DateDiff("d", cMinuteZero, CLng(Zeit))
AnzahlMinute = (Zeit - AnzahlTage - cMinuteZero) * 1440
DatumInMinutum = AnzahlTage * cMinuteProTag + AnzahlMinute
End Function

Function MinutumInDatum(ByVal Minutum As Long) As Date
Dim Tage As Double
Dim Minuten As Double

Tage = Int(Minutum / cMinuteProTag)
Minuten = Minutum - Tage * cMinuteProTag
MinutumInDatum = cMinuteZero + Tage + TimeSerial(0, Minuten, 0)
End Function

Sub test()
Dim tmp

tmp = DateSerial(2025, 1, 3) + TimeSerial(8, 0, 0) ' 60 Min nach Anfang des Tages
Debug.Print Format(tmp, "dd.mm.yyyy hh:mm:ss")
tmp = DatumInMinutum(tmp)
Debug.Print tmp 'Anzeige in Minutum
Debug.Print MinutumInDatum(tmp) 'Umkehr
Debug.Print MinutumInDatum(tmp + 379) 'letzte Minute an der Tag 440 - 61
Debug.Print MinutumInDatum(tmp + 380) 'erste Minute am nächsten Tag 440 - 60
End Sub


440 Minuten sind 7 Std und 20 Minuten. Pausen werden nicht berücksichtigt.

VG
Yal
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18