AW: Zufallsbingo mit Texten erstellen
10.01.2023 13:33:39
Daniel
Hi
hier noch eine andere VBA-Variante.
die Zufallsreihenfolge ohne wiederholungen wird dadurch erzeugt, dass die Texte in ein Array eingelesen werden und dort die Positionen zufällig getauscht werden.
dann man die Liste von oben durchgehen, soweit wie benötigt und die Werte einfach von oben lesen:
die Größe des Bingofeldes legst du mit der Dimensionierung des Arrays Bingo fest. der Rest des Codes orientiert sich daran.
Lückenfelder kannst du im Select-Case einfach definieren, es können auch mehrere sein.
Die Textliste muss mindestens so viele Einträge haben wie es zu füllende Bingofelder gibt.
Sub Bingo()
Dim Sätze
Dim Bingo(1 To 5, 1 To 6)
Dim txt, x As Long, y As Long, z As Long, i As Long
'--- Sätze einlesen
With Sheets("Tabelle1").Range("A1") 'erste Zelle mit den Sätzen
Sätze = Range(.Cells, .End(xlDown)).Value
End With
'--- Zufallsreihenfolge erstellen
For i = 1 To UBound(Sätze, 1)
x = WorksheetFunction.RandBetween(1, UBound(Sätze, 1))
txt = Sätze(i, 1)
Sätze(i, 1) = Sätze(x, 1)
Sätze(x, 1) = txt
Next
'--- Bingofeld erzeugen
For i = 1 To UBound(Bingo, 1) * UBound(Bingo, 2)
Select Case i
Case 13 'Lückenfeld
Case Else
x = (i - 1) \ UBound(Bingo, 2) + 1
y = (i - 1) Mod UBound(Bingo, 2) + 1
z = z + 1
Bingo(x, y) = Sätze(z, 1)
End Select
Next
ActiveCell.Resize(UBound(Bingo, 1), UBound(Bingo, 2)) = Bingo
End Sub
Gruß Daniel