08.03.2022, 12:03
Hallo!
Ich habe einen Zahlengenerator (für 6 Zahlen - wie beim Lotto) erstellt, wobei alle auszugebenden Zahlen nur 1x vorkommen sollen. Ab B3 (bis B8) werden nun meine 6 Zahlen (im Zahlenbereich 1-49) angezeigt.
Hier der Code:
Sub ZahlenGenerator()
Dim i As Integer, zahlen(5), j As Integer
Randomize
' Erste Zahl ziehen, Variable belegen
zahlen(0) = Int(Rnd * 49) + 1
' Die nächsten 5 Zahlen
For i = 1 To 5
Randomize
zahlen(i) = Int(Rnd * 49) + 1
' Prüfen, ob Zahl schon gezogen ist
For j = 0 To i - 1
If zahlen(j) = zahlen(i) Then
'Zahl schon gezogen
i = i - 1
Exit For
End If
Next j
Next i
' Ausgabe der Zahlen in der Tabelle ab B3
For i = 0 To 5
Sheets("Tabelle1").Cells(i + 3, 2).Value = zahlen(i)
Next i
End Sub
Ich möchte am Anfang nun eine Abfrage über eine InputBox ("Wie viele Zahlen sollen ausgegeben werden?") machen. Hier wird die Anzahl der auszugebenden Zahlen eingetragen. Z.B. 10. Dann sollen ab B3 die 10 Zahlen (also 1, 2, 3 ..10 - in zufälliger Reihenfolge) bis B12 eingetragen werden.
Wie würde das gehen?
Danke
Gruß Markus
Ich habe einen Zahlengenerator (für 6 Zahlen - wie beim Lotto) erstellt, wobei alle auszugebenden Zahlen nur 1x vorkommen sollen. Ab B3 (bis B8) werden nun meine 6 Zahlen (im Zahlenbereich 1-49) angezeigt.
Hier der Code:
Sub ZahlenGenerator()
Dim i As Integer, zahlen(5), j As Integer
Randomize
' Erste Zahl ziehen, Variable belegen
zahlen(0) = Int(Rnd * 49) + 1
' Die nächsten 5 Zahlen
For i = 1 To 5
Randomize
zahlen(i) = Int(Rnd * 49) + 1
' Prüfen, ob Zahl schon gezogen ist
For j = 0 To i - 1
If zahlen(j) = zahlen(i) Then
'Zahl schon gezogen
i = i - 1
Exit For
End If
Next j
Next i
' Ausgabe der Zahlen in der Tabelle ab B3
For i = 0 To 5
Sheets("Tabelle1").Cells(i + 3, 2).Value = zahlen(i)
Next i
End Sub
Ich möchte am Anfang nun eine Abfrage über eine InputBox ("Wie viele Zahlen sollen ausgegeben werden?") machen. Hier wird die Anzahl der auszugebenden Zahlen eingetragen. Z.B. 10. Dann sollen ab B3 die 10 Zahlen (also 1, 2, 3 ..10 - in zufälliger Reihenfolge) bis B12 eingetragen werden.
Wie würde das gehen?
Danke
Gruß Markus