Netzplanung
31.05.2014 00:34:20
Newone
ich hab folgendes Projekt als Leckerbissen für jeden VBA-Profi. Ein VBA-Anfänger wie ich verzweifelt daran.
Mein Projekt "Netzplanung". In der beigefügten Datei sind 4 überschaubare Tabellen, die jeweils auch mit Kommentaren mein Problem beschreiben (hoffentlich). Es geht darum zunächst verschiedenen Kundenbezirken einen Standort zuzuordnen. Die Fahrzeiten zwischen den Kundenbezirken und den Standorten darf nicht größer sein als 2 Std. Die Fahrzeiten zwischen den Standorten darf nicht größer als 12 Std sein. Und jeder Standort hat eine maximale Kapazität von 4000000 Sendungen.
Ich habe mit einem speziellen Solver das Optimeriungsproblem gelöst, sodass die Zuordnung der Kundenbezirke zu Standorten nach einem bestimmten Algorithmus erfolgt. D.h, das größte Problem mit unzähligen Variablen habe ich bereits gelöst. Jeodoch macht mir VBA große Probleme. Die nachfolgenden Restriktionen kann ich nicht mit meinen Fähigkeiten nicht umsetzten:
1.Tabelle "Netzplanung":Hier kann man als Benutzer (manuell) einem Standort verschiedene Kundenbezirke zuordnen. Eine 1 bedeutet dem Kundbezirk X wird der Standort Y zugeordnet, ansonsten eine 0 oder nichts ausfüllen.
Dabei darf und muss jeder Kundenbezirk(Zeile) max. einem Standort (Spalte) zugeordnet werden. Ein Standort muss jedoch nicht zwingend Kundenbezirke enthalten, darf also "leer" ausgehen. (Warum genau irgendwo eine 1 gesetzt wird habe ich mit dem Solver gelöst;))
Jetzt fängt das Problem an bzw. starten die Restriktionen:)
2. Tabelle "Fahrzeit_Kundenbezirk_Standrt":
Falls bei "Netzplanung" eine 1 gesetzt wurde, muss geprüft werden ob in dieser Tabelle der Wert (in der gleichen Zeile/Spalte wie in Netzplanung) kleiner gleich 2 ist. Falls nicht dann soll eine Fehlermeldung erfolgen.
3. Tabelle "Fahrzeit_Standort_Standrt":
Falls bei "Netzplanung" eine 1 gesetzt wurde und damit ja der Standort X aufjedenfall ausgewählt wird, muss geprüft werden ob in der gesamten Zeile dieses Standorts X in dieser Tabelle ein Wert vorkommt, der größer als 12 ist. Falls ja dann darf der Standort Y (Spalte) in der Tabelle "Netzplanung" nirgends einem Kundenbezirk zugeordnet werden. (Vllt. durch eine Fehlermeldung oder indem mann die gesamte Spalte in "Netzplanung" irgendwie nicht mehr bearbeitbar macht)
4. Tabelle "Sendungsvolumen"
Zu guter Letzt. Wenn sämtliche Kundenbezirke zugeordnet worden sind in "Netzplanung" muss geprüft werden ob das Sendungsvolumen dieses Standorts(Spalte) kleiner gleich 4000000 ist. Wenn nicht dann Fehlermeldung.
Ich hab einfach mal bei "Netzplanung" willkürlich Einsen und Nullen eingetippt, nicht wundern. Die Zahlen sind ebenfalls willkürlich ausgesucht.
Falls mein Anliegen die normale Hilfsbereitschaft dieser Community an seine Grenzen stößt möchte ich mich für die Unnanehmlichkeiten entschuldinge und mich gleichzeitg für jegliche Art von Hilfestellungen bedanken.
https://www.herber.de/bbs/user/90924.xlsx