j'ai un des big boss qui me pose la question de savoir "comment" (et non pas "si") on peut gérer une relance d'un code à réception du résultat du précédent, et ce sans arriver à saturer la pile

le code actuel est du type
côté formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Compare Database
 
Public WithEvents SpotRun As cls_Spot
 
 
Private Sub Commande2_Click()
    Dim i As Integer
    i = 0
    If SpotRun Is Nothing Then
        Set SpotRun = New cls_Spot
 
        SpotRun.Init
 
        Spot_Total = 0
 
        Texte3.Value = Spot_Total
    End If
 
        SpotRun.GetNextSpot
 
End Sub
 
 
Private Sub SpotRun_SpotChange()
 
        Calc_Tot_Spot
 
        Texte3.Value = Spot_Total
 
        SpotRun.Class_Terminate
        Set SpotRun = Nothing
        Set SpotRun = New cls_Spot
 
        SpotRun.GetNextSpot
 
End Sub
et le code de la classe est le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Option Compare Database
 
Public Event SpotChange()
 
Public Sub GetNextSpot()
    RaiseEvent SpotChange
End Sub
 
Public Sub Init()
'blabla
End Sub
 
Public Sub Class_Terminate()
    'blabla
End Sub
je me bats pour qu'une fois le RaiseEvent SpotChange passé, on force la fin "simultanée" de GetNextSpot()

Des idées ?