ich hantiere hier mal wieder in Excel mit VBA etwas herum und mir fehlt der Gedankensprung zum richtigen Vorgehen bei meinem Problem.
Es geht um eine Liste von x Werten die alle einem Datum zugeordnet sind, bzw. mehreren, aber nur das eine spielt hier eine Rolle. Das Ziel ist es, dass das Makro diese Liste durchläuft und eine Reihenfolge festlegt welche Zeile wann dran kommt.
Kurz gesagt geht es um die Nacharbeit an Maschinen in einer Produktion und es wird ein Makro benötigt, welches vorgibt welche Maschine zuerst nachbearbeitet werden soll und welche später usw.
Spalte E beinhaltet das Datum, wo die Nacharbeit frühstmöglich gestartet werden kann
Spalte F beinhaltet die benötigten Stunden für die zugehörige Nacharbeit
Spalte G beinhaltet die Anzahl an Arbeitsplätzen die an dem TAG zur Verfügung stehen (eine Nacharbeit benötigt genau einen Arbeitsplatz)
Spalte H beinhaltet die Stunden die an dem Tag gearbeitet werden können
Spalte J bis M beinhaltet berechnte Werte zum einfacheren Festlegen der Reihenfolge
Spalte N soll die Reihenfolgenummer danach drinstehen
Spalte O beinhaltet dann ein "Ja" oder "Nein", ob der Auftrag bereits erledigt ist (war Teil meines Gedankengangs, wie man das Makro hinkriegen kann, ist aber nicht notwendig)
Spalte R ist eine Liste vom frühsten Datum in Spalte E bis zum spätesten Datum in Spalte E
Spalte S beinhaltet die Anzahl an Aufträgen für das jeweilige Datum.
Beispieldatei: https://www.herber.de/bbs/user/137920.xlsx
Makro in Textdatei: https://www.herber.de/bbs/user/137921.txt
Zur Idee des Makros:
1. Nimm das frühste Datum aus Spalte E
2. Gucke alle Aufträge/Zeilen an, wo das Datum in Spalte E übereinstimmt oder älter ist
3. Überprüfe ob der Auftrag bereits erledigt ist (nur notwendig um doppeltes zu vermeiden)
4. Priorisiere Aufträge die in der Vergangenheit sind und noch nicht abgeschlossen worden
5. Suche bei allen Zeilen, die die Punkte 2 und 3 erfüllen, in Spalte M, und beachte bei der Reihenfolge den Wert von niedrig nach hoch (-7 wird bearbeitet noch vor -2 oder +25)
6. Wenn ein Wert in Spalte M mehrfach vorkommt, überprüfe ob der Auftrag an dem Tag geschafft werden kann (Wert in Spalte F kleiner als Wert in Spalte H)
7. Wiederhole das für jedes Datum bis zum spätesten Datum in Spalte E
Mein Hauptproblem dabei liegt die richtige Vorgehensweise zu finden bei Punkt 5. Dieser Weg mehrere Zeilen sich anzugucken die eine Bedingung erfüllen, sie nach ner zweiten Bedingung (Spalte M) zu priorisieren und wenn da was doppeltes vorkommt noch einen dritten Wert zu berücksichtigen. Das sind so viele Werte die immer mit einander verglichen werden müssen.
Als Mensch sieht man mit zwei drei Blicken was zuerst dran kommt aber im Makro ist es nicht so einfach wie erwartet.
Ich hoffe ich habe die Regeln dieses Forums eingehalten. Bin zwar schon lange angemeldet aber ziemlich unerfahren hier.
Freundliche Grüße
Burak