Microsoft 365 La procédure s'arrête après un événement

Johnsdoeuf

XLDnaute Nouveau
Je fait un test pour réaliser de longs calculs sans bloquer l'interface.

Mon Code:
VB:
Sub ProcessCall(ByVal TopLoc)
    Dim Work As New Process
    Set cellule = cells("b1)
    Work.TopLoc = TopLoc
    Randomize
    Work.Id = Int(Rnd * 100000)
    cellule.Resize(bcl).ClearContents
    Call SousProcess(cellule, Work)
End Sub

Sub SousProcess(Base, Work)
    Som = 0
    For A = 1 To bcl
        Som = Som + Base.Offset(0, -1).Value

        For b = 1 To 8000
            Base.Value = Som
        Next
        Set Base = Base.Offset(1, 0)
        Debug.Print ("Id:" & Work.Id & " itération:" & A)
        DoEvents
        If Work.TopLoc <> Top Then
            Err.Raise 5015, , "Interuption de la procédure"
        End If
    Next

End Sub

module de classe Process:
Public TopLoc
Public Id

Processcall est appelé par la modification de la feuille.
Il lance la procédure SousProcess
Elle, fait une tache très longue et inutile interrompue par doevents pour me laisser la main. Ainsi, j'ai le temps de modifier la feuille qui a pour effet de lancer une nouvelle fois la procédure ProcessCall.
Normalement un mécanisme de contrôle identifie qu'un autre appel à processcall est intervenu et devrai arrêter le processus ancien.

Ce n'est pas nécessaire puisque les procédures interrompues ne se finissent simplement jamais.
Voici le retour de l'instruction debug suite à 3 modifications dans la feuille.
Id:49387 itération:1
Id:49387 itération:2
Id:49387 itération:3
Id:49387 itération:4
Id:49387 itération:5
Id:87412 itération:1
Id:87412 itération:2
Id:87412 itération:3
Id:87412 itération:4
Id:50342 itération:1
Id:50342 itération:2
Id:50342 itération:3
Id:50342 itération:4
Id:87310 itération:1
Id:87310 itération:2
Id:87310 itération:3
Id:87310 itération:4
Id:87310 itération:5
Id:87310 itération:6
Id:87310 itération:7
Id:87310 itération:8
Id:87310 itération:9
Id:87310 itération:10
Id:87310 itération:11
...
Les procédures 49387 puis 50382 sont correctement interrompues mais ne reprennent jamais.

Ce comportement ne me parait pas normal.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 091
Messages
2 116 111
Membres
112 662
dernier inscrit
lou75