wie kann ich mit VBA mir alle Permuationen einer Reihe ausgeben lassen? Z.B. alle Möglichkeiten "A","B","C" und "D" zu sortieren. Bei vier Werten wären das 24 Möglichkeiten - bei 8 Werten schon 40320.
Danke schon einmal im vorraus.
Norbi
wie kann ich mit VBA mir alle Permuationen einer Reihe ausgeben lassen? Z.B. alle Möglichkeiten "A","B","C" und "D" zu sortieren. Bei vier Werten wären das 24 Möglichkeiten - bei 8 Werten schon 40320.
Danke schon einmal im vorraus.
Norbi
braucht kein VBA zu sein. excel bietet die FUNTION FAKULTÄT.
gruss thomas
www.lemitec.de/ppt | Statistik mit Excel
Gruß HW
ich brauche nicht die Anzahl der Möglichkeiten. Die kann ich ja, wie Du schon sagtest mit Fakultät ausrechnen. Ich muß leider alle Möglichkeiten aufzeigen, um daraus eine auszuwählen, die bestimmte Bedingungen erfüllt. Das mit ABCD ist nur ein Auszug aus einem viel komplexeren Kontext.
Aber danke trotzdem
das ist natuerlich vom Forum schwer zu erraten ;-)
versuch den komplexeren kontext mal zu verklickern.
gruss thomas
p.s. das mit meiner ergaenzung hat dann wohl auch nicht geholfen?
wenn ich das ganze Problem verklickern würde, würde das den Rahmen dieses Forums sprengen.
Aber ein Bspl kann ich bringen. Angenommen ich suche die Möglichkeiten ABC anzuordnen. Als Ausgabe hätte ich dann gerne:
ABC, BAC, BCA, CBA, CAB, ACB also 6 Zeilen (3!). Im nächsten Schritt werden die einzelnen Reihenfolgen dann bewertet. Z.B. Ähnlich einer Routenplanung, d.h. ich möchte die Orte AB und C anfahren - welches ist der kürzeste Weg? Ein Problem hierbei ist aber dann z.B. das Ort B bis z.B. 15:00 Uhr angefahren sein muß. und damit z.B. die Kombination CAB nicht funktionieren würde.
Das reale Problem hat zwar nichts mit Orten oder Routenplanung zu tun, wäre aber analog zu beschreiben.
Gruß Norbi
Deine Lösung gefällt mir. Nur bin ich gerade am verzweifeln, wie man das "von hinten lesen" hinbekommt. Das "von vorne lesen" klappt schon. Sind aber leider dann nur 12 Möglichkeiten, wobei der Rest symetrisch wäre, oder?
Gruß Norbi
vielleicht bring das Dich weiter.
www.herber.de/forum/archiv/40to44/t40571.htm
leider wird der LINK nicht korrekt ausgefuehrt.
fuer den naechsten schritt habe ich leider keine idee.
gruss thomas
Danke
Danke.
Ich probiere das gleich mal aus!
Gruß
hier für alle die interessiert sind das Makro:
Sub permut()
Columns("A:E").ClearContents
a = Array("A", "B", "C", "D")
Call permutation(a, 0)
End Sub
Function permutation(ByVal a, k)
If k = 3 Then
zeile = Cells(65536, 1).End(xlUp).Row
If Cells(1, 1) <> "" Then zeile = zeile + 1
For i = 0 To 3
Cells(zeile, i + 1) = a(i)
Next
Else
For i = k To 3
x = a(i)
a(i) = a(k)
a(k) = x
Call permutation(a, k + 1)
Next
End If
End Function
und das beste ist, es funktioniert !!!!
den LINK habe ich mittels dem genialen XLFINDER gefunden den Hans unter RECHERCHE-DOWNLOAD bereitstellt.
gruss thomas