Hallo Zusammen,
ich habe mal wieder ein kleines Problem und hoffe mal wieder auf die Hilfe des Forums. Habe schon gegoogelt und auch hier im Forum geschaut, aber nichts passendes gefunden.
Folgendes Problem: Ich habe mehrere Signale die 6 Werte annehmen können. Über VB will ich alle Kombinationen erstellen. Allerdings ist die Signalanzahl variabel.
Folgender Code habe ich bereits geschrieben (exemplarisch für 3 Signale):
For i = 1 To 6
For Y = 1 To AnzKombinationen / (6 ^ 1)
For j = 1 To 6
For X = 1 To AnzKombinationen / (6 ^ 2)
For k = 1 To 6
For Z = 1 To AnzKombinationen / (6 ^ 3)
MsgBox ("Signal1 = " + Str(i) + "Signal2 = " + Str(j))
Next Z
Next k
Next X
Next j
Next Y
Next i
Ich weiß auf die For-Schleife Y und X könnte ich verzichten, hier nur damit es leichter zu erklären ist.
Gibt es eine Möglichkeit das Ganze flexibel zu gestallten. (Für 2 Signale brauche ich dann nur 2 For-Schleifen, für 4 Signale brauche ich dann 4 For-Schleifen).
Bin für jeden Tipp dankbar.
Viele Grüße Sunny
Hallo,
Ich weiß auf die For-Schleife Y und X könnte ich verzichten,
hier nur damit es leichter zu erklären ist.
Gibt es eine Möglichkeit das Ganze flexibel zu gestallten.
(Für 2 Signale brauche ich dann nur 2 For-Schleifen, für 4
Signale brauche ich dann 4 For-Schleifen).
nein, das geht so nicht.
Zählschleifen sind für das Problem der falsche Weg.
Ich habe Dir mal etwas geschrieben, sieh’s Dir mal genau an, eine rekursive Prozedur ist, was Du brauchst.
Option Explicit
Dim intAnzahl As Integer
Dim intMax As Integer
Dim Feld() As Integer
Dim Txt As String
Dim Tst As String
Private Sub Command1\_Click()
Dim i As Integer
intAnzahl = InputBox("Bitte Anzahl Stellen angeben", "Eingabefenster")
intMax = InputBox("Bitte größte Ziffer", "Eingabefenster")
ReDim Feld(intAnzahl - 1)
For i = LBound(Feld) To UBound(Feld)
Feld(i) = 1
Tst = Tst + CStr(intMax)
Next
anzeigen
While Txt Tst
kombinieren
Wend
End Sub
Private Sub kombinieren(Optional pos As Integer)
If Feld(pos)
Gruß Rainer
Hallo Rainer,
super vielen herzlichen Dank. Habe es noch entsprechend angepasst und jetzt funktioniert alles einwandfrei. Vielen Dank für deine Hilfe.
Grüße Sunny