Tout arréter [Résolu]

Signaler
Messages postés
15
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
22 décembre 2007
-
Messages postés
15
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
22 décembre 2007
-
Bonjour à tous, je voulais savoir comment il faut faire pour arréter l'éxécution du programme en entier et non d'une sub seulement... Je pose cette question dans le cadre d'une gestion d'erreur dans une sub(fille) qui a elle même été appelée par une autre sub (mère).  Je parviens à stopper l'exécution de la sub fille, mais n'arrive pas à sortir de la sub mère...

Quelqu'un peut il me guider?

Merci d avance! =)

5 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

et bien c'est ce que te dit casy : obtenir un retour de la sub fille, donc la transformer en fonction

Sub mere()
    If fille Then
        'suite mère
        programme
    End If
End Sub

Function fille() As Boolean
    On Error GoTo gestion_erreur
    'suite
fille
    programme
    fille = True
    Exit Function

gestion_erreur:
    Err.Clear
    fille = False
End Function

++
PCPT [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

va falloir mettre un bout de code pour obtenir de l'aide.
l'execution étant linéaire, à part une boucle sans fin ou une récursivité sans fin, pas beaucoup de raisons de ne pas réussir à sortir d'une sub...

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
A la place d'une sub, utilise une fonction dont le retour sera un code d'erreur.

Dans la sub (function) fille, si tu as une erreur avant de sortir, tu retourne un code d'erreur. Dans la sub (function) mere, au retour de la function fille, tu vérifie la valeur de retour, si c'est un code d'erreur, tu positionne la valeur de retour de cette fonction et tu sors. Ainsi de suite jusqu'au derniier niveau ou là tu sors directement du programme.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
15
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
22 décembre 2007

Euh, merci d'avoir répondu mais c'est pas très clair... Je vais essayer de préciser un peu.
En fait voilà en gros ce que j'ai :
______________________________________
sub mere()
    call sub fille
    suite du programme
End sub
______________________________________
sub fille()
    on error goto gestion erreur
    programme
    exit sub

gestion_erreur:
    'gestion de l'erreur : c'est la que je veux terminer la sub fille et ne pas effectuer la 'suite du programme' de la sub mere

end sub
______________________________________

Voilà j'espère que je suis un peu plus clair... J'attends vos réponses! Merci!
   

   
   
Messages postés
15
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
22 décembre 2007

Merci!