Tout arréter

Résolu
batteur_fou Messages postés 15 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 22 décembre 2007 - 11 nov. 2007 à 22:18
batteur_fou Messages postés 15 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 22 décembre 2007 - 12 nov. 2007 à 10:32
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 nov. 2007 à 08:18
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
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 nov. 2007 à 22:22
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
11 nov. 2007 à 22:27
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
0
batteur_fou Messages postés 15 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 22 décembre 2007
12 nov. 2007 à 07:54
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!
   

   
   
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
batteur_fou Messages postés 15 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 22 décembre 2007
12 nov. 2007 à 10:32
Merci!
0
Rejoignez-nous