Sortir module + userform

Bonjour, j'ai un petit soucis avec ma macro.

J'ai un UserForm qui appel plusieurs modules. J'arrive à sortir du module avec Exit Sub mais j'aimerais carrément arrêter la macro car actuellement le Exit Sub me quitte mon module mais ensuite ça continue à appeler les autres modules dans mon UserForm.

Je n'ai pas mis de fichier étant donné que le problème est relativement simple à expliquer.

Merci d'avance.

Bonjour,

Peut-être avec l'instruction End

Ou alors utiliser ce programme comme une fonction qui renvoie vrai pour continuer, faux pour arrêter, et vérifier la valeur que retourne le programme avant de continuer, ou alors nommer une variable global continuer qui sera égale à vrai au début du lancement, et dans le cas où tu veux arrêter, tu la passes à faux, et tu testes sa valeur avant d'appeler le reste des programmes.

Je ne vois pas d'autres solutions.

Bonjour,

Peut-être avec l'instruction End

Ou alors utiliser ce programme comme une fonction qui renvoie vrai pour continuer, faux pour arrêter, et vérifier la valeur que retourne le programme avant de continuer, ou alors nommer une variable global continuer qui sera égale à vrai au début du lancement, et dans le cas où tu veux arrêter, tu la passes à faux, et tu testes sa valeur avant d'appeler le reste des programmes.

Je ne vois pas d'autres solutions.

D'accord merci par contre je ne connais pas l'instruction end. Elle s'utilise comme un exit ?

Bonjour,

Oui elle s'utilise un peu comme un exit, sauf que normalement juste end, ça arrête les macros, mais comme je ne l'ai jamais utilisé, c'est à tester

Bonjour, Salut Ausecour !

Je conseillerais d'éviter End autant que possible... c'est un peu une sorte de "Warning", ça arrête tout, et ça vide la mémoire, ce qu'on ne cherche pas forcément à faire...

OK ça marche.

Est-ce que MrFerrand tu aurais une idée de comment faire ?

Bonsoir,

Je n'ai pas mis de fichier étant donné que le problème est relativement simple à expliquer.

Pas aussi simple que tu le penses !

J'ai un UserForm qui appel plusieurs modules. J'arrive à sortir du module avec Exit Sub

Il y a une petite confusion : un module n'est qu'un composant support, destiné à accueillir du texte, ce texte constitue du code parce qu'un interpréteur de commande lit le texte dans les modules et l'interprète... Pour pouvoir être interprété ce code doit être organisé de façon précise : seul le code figurant dans des procédures sera susceptible d'être exécuté, le code hors procédure forme des déclarations d'options, de variables ou de références à des bibliothèques, qui ne donnent lieu à aucune exécution...

Tu ne peux donc appeler que des procédures, Sub ou Function. Et ayant placé une instruction Exit Sub dans une procédure, lorsque celle-ci est exécutée et que l'exécution rencontre cette instruction, elle s'arrête, le code se trouvant après dans la procédure ne sera pas exécuté.

mais ensuite ça continue à appeler

C'était donc que la procédure dont tu es sorti par Exit Sub était appelée par une autre procédure, qui à ce moment-là reprend la main et poursuit son exécution...

C'est donc au niveau de cette procédure appelante qu'il y a lieu d'intervenir si ton Exit Sub était destiné à interrompre l'exécution.

Mais n'ayant fourni ni code, ni information sur la structure de ton programme, ni fichier, on sera bien en peine pour te proposer une solution à partir de rien et sans savoir ce qui se passe.

Cordialement.

OK merci je vais voir ça. Bonne journée.

Rechercher des sujets similaires à "sortir module userform"