VBA : sortir simultanement de sub imbriquées

XLTOF

XLDnaute Nouveau
Bonjour à tous;

J'ai conçu une macro qui se compose d'une routine principale et de plusieurs sous-routines qui sont appelées au moment voulu dans cette macro principale.
Le but des sous-routines est de faire des contrôles avant de lancer un traitement plus lourd (ex : est-ce que le fichier attendu est bien ouvert, Est-ce que la structure du dit fichier est correcte, Est-ce que les données sont au format attendu, etc...). Si un des contrôles s'avère non conforme je stoppe l'ensemble du traitement.

Aujourd'hui, dans le cas d'un contrôle non conforme j'utilise des Exit sub qui permettent de sortir de mes sous-routines mais c'est assez pénible car Exit sub ne sort que de la routine en cours mais pas de la routine principale. J'ai contourné ce problème en créant une variable publique (controle_Ok =True) que je passe à False dans les sous-routines dès qu'un contrôle est non conforme. Je dois tester cette variable après chaque appel de sous routine dans la macro principale et refaire un nouvel exit sub si elle est à False: un peu lourd.

Ma question est donc la suivante, Y-a-il une commande qui permette de quitter simultanément sous-routine et routine principale ? J'ai cherché mais sans succès jusqu'à présent...

Merci de votre aide
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Je ne vous conseille pas vraiment End qui sort pourtant carrément de tout
J'envisagerais d'écrire les procédures sous forme de fonctions logiques
Private Function VérifX() As Boolean
Comme ça au moins l'appel peut inclure la sortie : If VerifX Then Exit Sub (ou Function)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
bonjour @XLTOF, Dranreb,

Pour le fun, une piste avec une gestion d'erreur.

nota: dans l'environnement VBA, dans le menu Outils/Options.../Onglet Général, il faut cocher l'option "Arrêt sur les erreurs non gérées". L'option "Arrêt sur toutes les erreurs" doit donc être décochée.
 

Pièces jointes

  • XLTOF- Arret traitement- v1.xlsm
    20.2 KB · Affichages: 17
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi