Out of Stack Space Fehler '28'

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:

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.
 
Geh mit deinem Debugger mal den Code Schritt für Schritt durch. Warscheinlich wird durch einen kleinen Logikfehler in dem Code eine Prozedur doch mehrmals aufgerufen, so ca. 1000 mal! Und schreib mal in welcher Zeile der Fehler auftritt!
 
Zurück