Pico Geschrieben 1. Februar 2002 Geschrieben 1. Februar 2002 Ist es möglich etwas im objektnamen zu kombinieren? z.B. Min = 1 Max = 8 For i = 1 To Max Randomize ZZahl = Int((Max * Rnd) + Min) Text & i = ZZahl <---also text feld mit der nummer der runde Next i hab leider keine msdn library zur verfügung Danke im vorraus Gruß Pico Zitieren
Pico Geschrieben 1. Februar 2002 Autor Geschrieben 1. Februar 2002 und wie bekomm ich es hin das bei einer zufallszahl nur ein oder zweimal die gleiche nummer genommen wird, wie zb beim lotto gruß Pico Zitieren
KarlBerg Geschrieben 1. Februar 2002 Geschrieben 1. Februar 2002 Hi, da musst'e mit Feldern arbeiten. Wenn du z.B. das Label1 kopierst, wirst du gefragt, ob ein "Steuerelementefeld" verwenden willst. Ja, du willst! Sagen wir du kopierst "label1" 5 mal (wirst aber nur einmal gefragt, hast am Schluss 6 Labels). Private Sub Command1_Click() For i = 0 To 5 '6 Felder, aber bei 0 beginnend Label1(i) = "Feld " & i Next i End Sub Die UngleichAbfrage musste mit auch mit Feldern (Variablen) lösen. Hab hier zusammengeknaupt, ist nicht schön, läuft aber auf den ersten Blick Private Sub Command2_Click() Dim Wert1 Dim FeldHlp(0 To 6) As Integer Dim i For i = 0 To 5 Wert1 = Int((50 * Rnd) + 1) 'zufall von 1 bis 50 FeldHlp(i) = Wert1 Next i For x = 0 To 5 For z = 0 To 5 If z <> x Then If FeldHlp(z) = FeldHlp(x) Then Wert1 = Int((50 * Rnd) + 1) 'zufall von 1 bis 50 FeldHlp(x) = Wert1 z = 0 End If End If Next z Next x For i = 0 To 5 Label1(i) = FeldHlp(i) Next i End Sub Hth KarlBerg Zitieren
KarlBerg Geschrieben 1. Februar 2002 Geschrieben 1. Februar 2002 Hi, ist noch en Fehler aufgefallen. schreib unter z=0 noch x=0. Also: For x = 0 To 5 For z = 0 To 5 If z <> x Then If FeldHlp(z) = FeldHlp(x) Then Wert1 = Int((50 * Rnd) + 1) 'zufall von 1 bis 50 FeldHlp(x) = Wert1 z = 0 x = 0 '<-ÄNDERUNG End If End If Next z Next x Ansonsten darf der Bereich des Zufalls (hier von 1 bis 50) nicht unter der Anzahl der Labels liegen, sonst kommste in ne Endlosschleife, weil man nicht jedem Label ne andere Nummer zuordnen kann, weils ja net genug gibt. Sollte so jedenfalls Fehler frei laufen. MfG KarlBerg Zitieren
Pico Geschrieben 2. Februar 2002 Autor Geschrieben 2. Februar 2002 danke, klappt sogar ganz gut, muss das nur auf meine bedürfnisse ändern ;o) thx und gruß Pico Zitieren
Pico Geschrieben 2. Februar 2002 Autor Geschrieben 2. Februar 2002 anscheinend gibs doch noch nen prob oder ich bin zu blöd ich hab das folgend abgeändert: Dim Wert1 As Integer Private Sub Command1_Click() For i = 0 To 15 Text1(i) = 0 Next i For x = 0 To 16 For z = 0 To 16 If z <> x Then If Text1(z) = Text1(x) Then Wert1 = Int((16 * Rnd) + 1) Text1(x) = Wert1 z = 0 End If End If Next z Next x End Sub ich hab 16 felder + 1 das nicht angezeigt wird( er packt immer ins letzte feld eine 0 und ich weiss ned warum deshalb hab ich das feld hinzugefügt) bei jedem click sollen 16 neue verschiedene werte von 1 bis 16 ausgegeben werden nur in den meisten fällen ist eine zahl doppelt, woher kommt das? thx im vorraus gruß Pico Zitieren
KarlBerg Geschrieben 3. Februar 2002 Geschrieben 3. Februar 2002 Hi, das mit dem doppelten Wert, hab ich eigentlich schon in meinem 2. Post behoben (glaub ich). *Egal* Hab deinen Code jetzt so abgeändert, dass er laufen sollte. Dim Wert1 As Integer Private Sub Command1_Click() For i = 0 To 15 Text1(i) = Int((16 * Rnd) + 1) Next i For x = 0 To 15 For z = 0 To 15 If z <> x Then If Text1(z) = Text1(x) Then Wert1 = Int((16 * Rnd) + 1) Text1(x) = Wert1 z = 0 x = 0 End If End If Next z Next x End Sub MfG KarlBerg Zitieren
Pico Geschrieben 3. Februar 2002 Autor Geschrieben 3. Februar 2002 cool, funzt wunderbar, danke nochmal gruß Pico Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.