Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Verschiedenes

Spielerei 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
rechte seite