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
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
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
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
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
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
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
Pico Geschrieben 3. Februar 2002 Autor Geschrieben 3. Februar 2002 cool, funzt wunderbar, danke nochmal gruß Pico
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden