Autor: Peter Haserodt --- Aus Excel VBA - Gruppe:
VerschiedenesSpielerei 2: Lottozahlen
Autor: Peter Haserodt - Erstellt: -- - Letzte Revision: --
Lottozahlen für Jedermann
Sie wollen nicht auf die nächste Ziehung warten oder brauchen ein paar tausend Ziehungen?
Kein Problem.
Nachfolgender Code liefert Ihnen dies - aber bedenken Sie: Einen wirklichen Zufallsgenerator hat Excel nicht - aber einigermaßen geht es schon.
Erstellen Sie eine neue Mappe und kopieren Sie den unten aufgeführten Code in ein allgemeines Modul.
Die
Public Sub StartLotto()
ist die Startprozedur und dort können Sie die gewünschte Zeilenzahl eingeben.
Die Zahlen werden in das erste Tabellenblatt der Arbeitsmappe geschrieben:
Von A-F die 6 Zahlen
in H die Zusatzzahl
in J die Superzahl.
Viel Spass!
' **************************************************************
' Modul: mdlLotto Typ = Allgemeines Modul
' **************************************************************
Option Explicit
Public Sub StartLotto()
LottoZahlen 1000
End Sub
Private Sub LottoZahlen(AnzahlZeilen As Long)
Dim vAusgabe As Variant, fMischFeld(1 To 49) As Byte
Dim i As Long, z As Byte, k As Byte, iRandom As Byte, iTemp As Byte, r As Byte, m As Integer
ReDim vAusgabe(1 To AnzahlZeilen, 1 To 10)
On Error GoTo Fehler
For i = 1 To 49
fMischFeld(i) = i
Next i
Randomize Timer
For i = 1 To AnzahlZeilen
z = 49
For k = 1 To 7
iRandom = Int(Rnd * z) + 1
iTemp = fMischFeld(iRandom)
If k = 7 Then ' Zusatzzahl
vAusgabe(i, 8) = iTemp
Else ' die anderen
vAusgabe(i, k) = fMischFeld(iRandom)
'lazy sortieren
For r = 1 To k
If vAusgabe(i, r) > iTemp Then
For m = k To (r + 1) Step -1
vAusgabe(i, m) = vAusgabe(i, m - 1)
Next m
vAusgabe(i, r) = iTemp
Exit For
End If
Next r
' ende sortieren
End If
fMischFeld(iRandom) = fMischFeld(z)
fMischFeld(z) = iTemp
z = z - 1
Next k
vAusgabe(i, 10) = Int(Rnd * 10) ' Superzahl
Next i
' *******************************************************
' hier diverse Anpassungen bei der Ausgabe der Zahlenreihen
With ThisWorkbook.Worksheets(1)
.UsedRange.ClearContents ' Löscht alle alten Inhalte
.Range(.Cells(1, 1), .Cells(AnzahlZeilen, 10)) = vAusgabe
End With
Exit Sub
Fehler:
MsgBox Err.Description
End Sub
Weitere Artikel der Gruppe: Verschiedenes Aus Excel VBA
Nach oben