Microsoft Excel

Herbers Excel/VBA-Archiv

Mögliche Reihenfolgen per VBA in Tabelle eintragen


Betrifft: Mögliche Reihenfolgen per VBA in Tabelle eintragen von: Markus
Geschrieben am: 26.09.2019 11:33:56

Hallo liebe Forenmitglieder,

ich verzweifle leider schon länger an einer Aufgabe und habe absolut keine Idee wie ich dies mit VBA umsetzen kann.

Ich habe eine Tabelle die mir mit Hilfe von Sverweisen Zeiten berechnet. Unter folgendem Link findet ihr die Beispieldatei: https://www.herber.de/bbs/user/132213.xlsm

Ich möchte nun die Tabelle mit VBA nach einem bestimmten Schema befüllen. Anhand meines Beispiels würde das so ausehen:

1. Schritt:
Setze A1 ein
2. Schritt:
Setze A1 A2 ein. Setze danach A2 A1 ein.
Fixiere die Reihenfolge in der die Zeit am geringsten ist (Hier A2 A1)
3. Schritt:
Setze A3 nun an jede mögliche Position der fixierten Reihenfolge
A3 A2 A1 ; A2 A3 A1; A2 A1 A3
Fixiere die Reihenfolge in der die Zeit am geringsten ist (Hier A3 A2 A1)
4. - 10.Schritt:
Fahre solange fort bis auch A10 eingeordnet wurde.

Mein Problem liegt nun genau ab dem 3. Schritt: ich weiß nicht wie ich das Einsortieren an jede mögliche Position umsetzen könnte. Vielleicht durch Schleifen und ein Array? Leider fehlen mir dazu jedoch die Kenntnisse.

Ich hoffe jemand hat eine zündende Idee und danke euch schon im voraus.

  

Betrifft: AW: Mögliche Reihenfolgen per VBA in Tabelle eintragen von: EtoPHG
Geschrieben am: 26.09.2019 11:52:06

Hallo Markus,

Das ist primär mal ein mathematisches Problem (siehe PSP).

Dir ist schon klar, dass du 181'440 Kombinationen durchrechnen musst, um die optimale Lösung zu erhalten?

Das kann dauern.

Gruess Hansueli


  

Betrifft: AW: Mögliche Reihenfolgen per VBA in Tabelle eintragen von: Markus
Geschrieben am: 26.09.2019 12:08:20

Hallo EtoPHG,

danke für die schnelle Antwort. Vielleicht verstehe ich es falsch oder habe es nicht gut beschrieben, aber durch festsetzen der Reihenfolge reduzieren sich doch die Kombinationen erheblich: Ich möchte ja nicht jede mögliche Kombination durchrechnen, sonder nehme in den nächsten Schritt die Reihenfolge bei der das Ergebnis am geringsten war und möchte dann ein neues Element in diese Reihenfolge einfügen: Davor, Danach und in die Zwischenpositionen.
Wenn ich das für die 10 Elemente mache, lande ich m.E. nicht bei 181440 Kombinationen sondern bei ca. 65 oder so.


  

Betrifft: Ok, dann hab ich was falsch verstanden von: EtoPHG
Geschrieben am: 26.09.2019 13:06:15

Markus,

Ich kann die Logik aus deiner Anfrage auch mit Hilfe der Beispielmappe nicht nachvollziehen.
Lasse den Thread mal für andere Helfer offen...

Gruess Hansueli


  

Betrifft: AW: Ok, dann hab ich was falsch verstanden von: Markus
Geschrieben am: 26.09.2019 13:19:29

Hallo EtoPHG,

es tut mir Leid das ich die Logik nicht besser erklären kann. Vielleicht erkläre ich es nochmal anders:

Ich Habe 10 Elemente von A1 bis A10. Ich setze nun A1 in die Tabelle ein.
Jetzt kommt A2 hinzu. Ich möchte nun die Kombinationen A1 A2 und A2 A1 in die Tabelle einsetzen. Ich merke mir die Reihenfolge in der die Tabelle die geringste Zeit berechnet (Angenommen hier A2 A1).
Nun kommt A3 hinzu und ich möchte es an jeder Stelle der vorher ermittelten Reihenfolge setzen: A3 A2 A1 (Davor); A2 A3 A1 (Dazwischen), A2 A1 A3 (Danach). Diese Kombinationen setze ich nun wieder in die Tabelle ein und merke mir wieder die Reihenfolge wo die berechnete Zeit am geringsten ist.
Jetzt kommt A4 hinzu und ich setze es wieder an die möglichen Positionen der vorher ermittelten Reihenfolge (Davor, Danach und in die Zwischenpositionen), diese Kombinationen füge ich nun wieder in die Tabelle ein und schaue wo die berechnete Zeit am geringsten ist. So verfahre ich dann weiter bis ich A10 eingefügt habe.

Ich hoffe du kannst damit jetzt etwas anfangen.


Beiträge aus dem Excel-Forum zum Thema "Mögliche Reihenfolgen per VBA in Tabelle eintragen"