Hallo zusammen, da ich leider bisher nicht weitergekommen bin, habe ich einen vereinfachten Codeschnipsel angefuegt. Ich übergebe die Matrix b mit einer beliebigen Anzahl an Stellen.
In
meiner Permutationsfunktion schreibe ich mir jeden Fall in die entsprechende Zelle. Das löschen von doppelten Fällen habe ich mit Absicht weggelassen um mein Problem zu verdeutlichen. Ich möchte nämlich am liebsten keine doppelten Fälle berechnen, sondern nur die voneinander unterschiedlichen Fälle.
Sub
s_Faelle_erstellen(b)
strVal1 =
"=1"
strVal2 =
"=2"
A_NmaxVal = 3
a = b
For
i = 0
To
UBound(a)
a(i) = 0
Next
For
j = 0
To
A_NmaxVal - 1
For
l = 0
To
j
a(l) = strVal1
Call
permutation(a, 0)
Next
For
m = 0
To
j
a(m) = strVal2
Call
permutation(a, 0)
Next
Next
End
Sub
Function
permutation(
ByVal
a, k)
If
k = UBound(a)
Then
Zeile = Cells(65536, 1).
End
(xlUp).Row
If
Cells(1, 1) <>
""
Then
Zeile = Zeile + 1
Range(Cells(Zeile, 1), Cells(Zeile, UBound(a) + 1)).FormulaArray = a
Exit
Function
Else
For
i = k
To
UBound(a)
x = a(i)
a(i) = a(k)
a(k) = x
Call
permutation(a, k + 1)
Next
End
If
End
Function