Execution de code avant arrêt d'une macro

BremyHH

XLDnaute Nouveau
Bonjour tout le monde !

Je voulais avoir votre avis sur un petit problème que je rencontre. J'ai crée un programme en VBA commandant un source-mètre ainsi qu'une carte électronique, respectivement en Gpib et RS232. A différents endroits de mon programme, je viens commander l'envoi de courant sur ma carte électronique ou encore contrôler la commutation de relais afin de charactériser des composants et récupérer differentes données.

Je chercher à ajouter un code en cas d'arrêt en cours de procédure. Le problème étant que si l'arrêt se produit à un mauvais moment de ma boucle, je vais me retrouver avec un source-mètre en marche ainsi que des relais toujours commutés (et donc consommant du courant et chauffat fortement..).

.. Pour le moment j'ai pensé à ajouter du code à réaliser lorsque l'on réaliser des actions permettant l'arret en cours d'une macro.

Exemple:

Application.OnKey "{Escape}", "Iddle_mode"

Pour lancer ma procédure de 'mise en veille' lors de l'appuie sur la touche 'Escape' (Utilisée les 3/4 du temps pour arrêter une macro en cours..)

J'aimerais aussi forcer l'éxécution de "Iddle_mode" si l'on clique sur la croix du Classeur ou Excel.. etc mais malheuresement je n'ai rien trouvé la dessus répondant à mes besoins !

Et enfin, es ce que tout simplement il n'existerait pas une fonction ou librarie permettant l'éxécution d'une dernière procédure en cas de bug ou d'arrêt inatendu (volontaire ou non) de ma macro.

Merci d'avance pour votre aide
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Execution de code avant arrêt d'une macro

Bonjour BremyHH, bonjour le forum,

Pour interrompre une macro je ne pense pas que [Échap.] fasse effet. J'utilise plutôt la combinaison [Ctrl]+[Pause] (la touche [Pause] se trouve trois touches à droite de la touche [F12]).

Pour ecrire du code à la fermeture du classeur utilise la macro événentielle BeforeClosedu composant ThisWorkbook :

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'ton code...
End Sub
 

BremyHH

XLDnaute Nouveau
Re : Execution de code avant arrêt d'une macro

Bonjour, merci pour la réponse concernant la macro BeforeClose, je vais test ca dans mon code.

En fait, le problème étant que les personens utilisant mon programme sont des "opérateurs", ne connaissant pas le fonctionnement des macro Excel, et d'aprés les retours, pour arreter la macro en cours (enchainement de mesures et de tracage de courbes pouvant aller jusqu'a 4-5min) ils appiuent en général plusieurs fois sur échap ou ferme Excel, afin de quitter et relancer un autre programme, ou changer un paramètre.. Voila le soucis ^^

Dans la même idée que BeforeClose, il n'existe pas de fonction ou librairie BeforeEndSub ou quelque chose de ce style, permettant d'effectuer une dernière tâche en cas de problème/bug/Arrêt imprévu ?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Execution de code avant arrêt d'une macro

Bonsoir Bremy, bonsoir le forum,

Peut-ête comme ça :
Code:
Public Sub Macro1()
On Error GoTo fin 'gestion des erreurs (en cas d'erreur va à l'étiquette fin)
'ton code
'............
'............
'............
'la fin de ton code
Exit Sub 'sort de la procédure

fin: 'étiquette
'ton code de reínitialisation du source-mètre et des relais
'............
'............
End Sub
En cas de plantage de la procédure le source-mètre et les relais seront éteints...
 

Discussions similaires

Statistiques des forums

Discussions
312 540
Messages
2 089 408
Membres
104 163
dernier inscrit
Lolo37