Vektor
Erfahrenes Mitglied
Hallo.
Ich möchte ein Programm zur Lottozahlenerstellung schreiben. Dabei erstelle ich die Zahlen in der Function Berechnung() und fülle diese in das Feld Spielzahlen(x,y). Anschließend
gehe ich in die Function Zahlenauswertung() und überprüfe ob die Zahlen doppelt gezogen wurden. Wenn ja möchte ich die Function Berechnung wieder neu starten. Und hier tritt das Problem auf dass wenn ich folgenden Code ausführe, eine Fehlermeldung '28' mit dem Text
"Out of Stack Space" erscheint. In der MSDN steht dass dieser Fehler erscheint wenn zuviele Prozeduren laufen. Was hier aber kaum der Fall sein kann.
Hier jetzt mal der Code der zwei Functionen:
Fällt euch was ein wie ich das anderst lösen kann oder der Fehler sich vermeiden lässt?
Wichtig ist vielleicht auch noch dass beide Functionen im selben Modul namens "Auswertung" stehen.
Danke im vorraus.
Ich möchte ein Programm zur Lottozahlenerstellung schreiben. Dabei erstelle ich die Zahlen in der Function Berechnung() und fülle diese in das Feld Spielzahlen(x,y). Anschließend
gehe ich in die Function Zahlenauswertung() und überprüfe ob die Zahlen doppelt gezogen wurden. Wenn ja möchte ich die Function Berechnung wieder neu starten. Und hier tritt das Problem auf dass wenn ich folgenden Code ausführe, eine Fehlermeldung '28' mit dem Text
"Out of Stack Space" erscheint. In der MSDN steht dass dieser Fehler erscheint wenn zuviele Prozeduren laufen. Was hier aber kaum der Fall sein kann.
Hier jetzt mal der Code der zwei Functionen:
Code:
Public Function Berechnung()
Dim x As Integer 'Variable verwendet bei erstellung der einzelnen Reihen
Dim y As Integer 'Variable verwendet bei erstellung der angegebenen Spiele
Erase Spielzahlen()
ReDim Spielzahlen(11, 5)
x = 0
MousePointer = vbHourglass
While x <= Anzahl - 1
y = 0
While y <= 5
Randomize
Spielzahlen(x, y) = Int(Unterwert + Rnd * (Oberwert - Unterwert + 1))
y = y + 1
Wend
x = x + 1
Wend
MousePointer = vbNormal
Auswertung.Berechnung
End Function
Public Function Zahlenauswertung()
Dim x As Integer
'In dieser Function wird geprüft ob eine Zahl doppelt gezogen wurde.
'Wenn ja wird eine neue Zahl erstellt bis keine Zahl doppelt ist.
x = 0
While x <= Anzahl - 1
If Spielzahlen(x, 0) = Spielzahlen(x, 1) Or Spielzahlen(x, 2) Or Spielzahlen(x, 3) _
Or Spielzahlen(x, 4) Or Spielzahlen(x, 5) Then Auswertung.Berechnung
If Spielzahlen(x, 1) = Spielzahlen(x, 0) Or Spielzahlen(x, 2) Or Spielzahlen(x, 3) _
Or Spielzahlen(x, 4) Or Spielzahlen(x, 5) Then Auswertung.Berechnung
If Spielzahlen(x, 2) = Spielzahlen(x, 1) Or Spielzahlen(x, 0) Or Spielzahlen(x, 3) _
Or Spielzahlen(x, 4) Or Spielzahlen(x, 5) Then Auswertung.Berechnung
If Spielzahlen(x, 3) = Spielzahlen(x, 1) Or Spielzahlen(x, 2) Or Spielzahlen(x, 0) _
Or Spielzahlen(x, 4) Or Spielzahlen(x, 5) Then Auswertung.Berechnung
If Spielzahlen(x, 4) = Spielzahlen(x, 1) Or Spielzahlen(x, 2) Or Spielzahlen(x, 3) _
Or Spielzahlen(x, 0) Or Spielzahlen(x, 5) Then Auswertung.Berechnung
If Spielzahlen(x, 5) = Spielzahlen(x, 1) Or Spielzahlen(x, 2) Or Spielzahlen(x, 3) _
Or Spielzahlen(x, 4) Or Spielzahlen(x, 0) Then Auswertung.Berechnung
Fällt euch was ein wie ich das anderst lösen kann oder der Fehler sich vermeiden lässt?
Wichtig ist vielleicht auch noch dass beide Functionen im selben Modul namens "Auswertung" stehen.
Danke im vorraus.