Getagged: Online-Bingo

BINGO! mit Excel 365

Hey! Alle lieben BINGO, oder?
Und Excel ist auch noch so gut und liest uns alle ca. 20 Sekunden die neuen Zahlen vor!

Zu Nikolaus 2020 habe ich die BINGO-Datei mit Excel 365 erstellt, da mich hier einige Formeln gereitzt haben. Dann noch “ein wenig” VBA programmiert, damit die zufälligen Zahlen von 1 bis 75 vorgelesen werden, bis jemand den STOPP-Button drückt.

Da ich VBA nutze, funktioniert der Code nicht im Browser.

Generiere auf Knopfdruck bis zu 21 Spielfelder

Die Felder werden zufällig erstellt. Unter dem B nur die Zahlen 1 bis 15, unter dem I entsprechend 16 bis 30, unter dem N 31 bis 45, unter dem G die Zahlen 46 bis 60 und unter dem O die Zahlen 61 bis 75. Jede Zahl natürlich nur einmal. Das mittlere Feld dient als Joker.

Die Seiten sind so vorbereitet, dass man entsprechend die Spielscheine drucken oder als PDF erstellen und an seine online-BINGO-Mitspieler/-innen schicken kann.

7 Blätter werden gedruckt

Wenn das Spiel nun losgeht, sieht der Spielführer zur Kontrolle auf diesem Blatt auch, welche Zahlen passen und entsprechend fünf Treffer in einer horizontalen, diagonalen oder vertikalen Reihe ergeben.

Die Steuerzentrale der Spielleitung

Hier natürlich nicht Schummeln!

Auf dem anderen Blatt lässt sich dann prüfen, ob ein BINGO oder ein weiteres erzielt wurde.

In der Regel sieht die Spielleitung nur die folgenden drei Schalter.

Die Bildchen sind aus den neuen Microsoft 365-Piktogrammen

Mit Spiel neu Starten wird ein Spiel komplett neu begonnen. Wenn jemand BINGO ruft, muss man auf die mittlere Schaltfläche klicken, der Spielverlauf wird dann unterbrochen und kann sofort weitergeführt werden oder erst so lange Warten, bis jemand rechts auf WEITER drückt.

Für das Spiel selbst muss natürlich der Ton eingeschaltet sein, sonst kann Excel ja nichts vorlesen.

Datei zum Download als XLSM-Datei wegen der Programmierung. Bitte nur Herunterladen, wenn ihr fremden VBA-Code ausführen dürft. Vielleicht einfach vorher mit ALT + F11 in den Code hineinschauen.

Videolink zu YouTube: https://youtu.be/gQvdEb24xpM

Hier nur der Code zur Demonstration. Geht bestimmt viel feiner 😉

Solltet ihr noch Fehler finden, korrigiere ich natürlich gerne meine Version.

'### BINGO! von Andreas Thehos, 2020-12-06             ###
 '### Läuft wegen einige Funktionen nur unter Excel 365 ###
 Global Zahlen(1 To 75, 1 To 2) As String 'In dieses Array werden die Ziehungen gespeichert und die Ausgabezeit vermerkt.
 Global Zeit As Date                      
 Global i As Integer                      
 Global Dauer As Integer      
            
 Public Sub BINGO_initialize()
 Dim z As Integer
 Dim NewGame As Integer
 Dim WerteGefuellt As Boolean
 Dim Bereich As Range
 Dim Zelle As Range
 Set Bereich = Range("BINGOWerte")       
 Dim ws As Worksheet                      
 Set ws = ThisWorkbook.Sheets("Ziehungen")
     Dauer = Range("Dauer").Value
 NewGame = MsgBox("Möchtest Du ein neues Spiel starten?", vbYesNo, "Neues Spiel") If NewGame = 7 Then Exit Sub  
ws.Columns("Z:AB").Clear          
WerteGefüllt = False Do Until WerteGefuellt = True 
Application.Calculate     
If Range("WerteEinmalig").Value = 1 Then WerteGefuellt = True 
Loop z = 1 For Each Zelle In Bereich.Cells     
Zahlen(z, 1) = Zelle.Value     
z = z + 1 
Next 
Range("SpielAn") = 1 
Zeit = Now + TimeSerial(0, 0, Dauer) 
i = 1 
BINGO_START (Zeit)
 End Sub
 Public Sub BINGO_run()
 Dim NewGame As Integer
 Dim WerteGefuellt As Boolean
 Dim Zeit As Date
 Dim Bereich As Range
 Dim Zelle As Range
 Dim Bingo As Integer
 Dim ws As Worksheet
 Dim Dauer As Integer
 Set Bereich = Range("BINGOWerte")
 Set ws = ThisWorkbook.Sheets("Ziehungen")
 Dauer = Range("Dauer").Value
 If Range("SpielAn") = 1 Then
     Zeit = Time
     Application.Speech.Speak Zahlen(i, 1)
     Zahlen(i, 2) = Zeit
 ws.Cells(9 + i, 26).Value = Zahlen(i, 1) ws.Cells(9 + i, 27).Value = Zahlen(i, 2) Zeit = Zeit + TimeSerial(0, 0, Dauer) i = i + 1
 End If
 If i = 76 Then Exit Sub
     If Range("SpielAn") = 1 Then
        Zeit = Now + TimeSerial(0, 0, Dauer)
        BINGO_START (Zeit)
     Else
        Bingo = MsgBox("BINGO?", vbYesNo, "Unterbrechung")
        If Bingo = 6 Then
            MsgBox "Das Spiel wird unterbrochen. Herzlichen Glückwunsch! Weiter mit WEITER!", vbOKOnly, "Unterbrechung"
            Exit Sub
        Else
            Range("SpielAn") = 1
            Zeit = Now + TimeSerial(0, 0, Int(Dauer / 2))
            BINGO_START (Zeit)
        End If
 End If
 End Sub
 Sub BINGO_START(Zeit)
     Debug.Print Zeit
     Application.OnTime Zeit, "Bingo_run"
 End Sub
 Sub WEITER()
     Range("SpielAn") = 1
     BINGO_run
 End Sub
 Sub BingoUnterbrechung()
  Range("SpielAn").Value = 0
 End Sub
 Sub Scheine_generieren()
 Dim Scheine As Range
 Dim Zielschein As Range
 Set Scheine = Range("Scheine")
 For Each Zielschein In Scheine.Cells     Range("Beispielschein").Copy     Range(Zielschein).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Next
 End Sub

Viel Spaß und Glück beim BINGO!
Es gibt sicher auch noch einigen Verbesserungsbedarf.

Eine frohe Weihnachtszeit wünscht
Andreas

P.S.: Hey, Jürgen und René! Danke euch von Herzen. Freut mich doch jedes mal, wenn man an einander denkt.
P.P.S.: Meine Amazon-Wunschliste habe ich gelöscht und bin auf https://www.wunschzettel.de/thehos umgestiegen.