Fermer une procédure vba

Fermé
passesautee Messages postés 2 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 7 décembre 2009 - 4 déc. 2009 à 17:22
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 7 déc. 2009 à 21:27
Bonjour à tous,

N'étant pas un expert en VBA et en programmation, je m'arrache les cheveux sur un problème qui parrait pourtant simple.

Ma procédure permet d'effectuer un calcul assez long. Pour faire patienter l'utilisateur, j'ai créé un userform avec une barre de progression. Sur cette Msgbox, j'aimerais ajouter un bouton annuler. Cependant, je sais unloader le userform mais je ne sais pas arreter la procédure.

D'où ma question:

Comment faire pour stopper une procédure qui est en train de tourner en cliquant simplement sur annuler?

Merci d'avance!

2 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
4 déc. 2009 à 18:07
Bonjour,
Oui, ça marche en cliquant sur annuler mais ce n'est pas très élégant :-)
Tu peux déclarer une variable publique (par exemple On_arrete as Boolean) qui tu initialises à False en début de calcul. Dans tes boucles de calcul, tu insères des tests du type :
If On_arret Then
Exit sub
End If


Tu peux également lancer une procédure d'arrêt ou mettre un GoTo à la place de l'Exit sub
1
passesautee Messages postés 2 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 7 décembre 2009
7 déc. 2009 à 13:17
Merci beaucoup pour ta réponse, c'est aimable à toi. C'est ce qu'il me faut.
Mais admettons qu'un jour je veuille quitter une procédure dont le calcul n'est pas une boucle. Je peux uniquement quitter la procédure avec un exit sub au sein de son code? ce n'est pas possible de quitter la procédure de l'extérieur? (du même type que unload par exemple)
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
7 déc. 2009 à 21:27
Bonsoir,
A ma connaissance, il n'est pas possible de quitter une procédure de l'extérieur excepté par les méthodes brutes du type Echap, Gestionnaire de tâches, ...
Je ne pense d'ailleur pas qu'il soit possible dans un même projet de lancer deux procédures en parallèle (une qui calcule et une qui gère les interruptions par exemple).
0