Bonjour,
Si tu as une Macro1 qui lance une Macro2, si tu as une erreur d'exécution sur la Macro2, tu passe en mode Arrêt et tout va s'arrêter, a moins de gérer les erreurs pour qu'elle ne provoquent pas d'interruption. Quand la Macro2 se termine ou qu'elle s'interrompt sur erreur gérée, Macro1 reprend la main.
Si dans le cas d'erreur, tu ne veux pas que Macro1 se poursuive, il faut placer un test à cet endroit pour que Macro1 sache si elle se poursuit ou non. Soit il y a un élément qui peut être testé pour savoir si Macro2 s'est déroulée normalement ou a été interrompue et alors tu peux tester cet élément, soit il n'y en a pas et il te faut en créer un :
Exemple : une variable booléenne niveau module, que Macro2 en cas d'erreur d'exécution, initialisera à True (non initialisée, elle renverra False, ce qui te permet de ne pas l'initialiser au départ). Macro1 à la reprise teste la valeur de cette variable, et si True s'arrête. La main revient au Userform si c'est lui qui a lancé Macro1, et si masqué durant l'exécution, Macro1 le réactive avec Show avant de s'interrompre.
Voilà un type de schéma utilisable...