Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment tracer le cheminement des macro ?

1 réponse
Avatar
Gouap
Bonjour à tous,

J'ai une question toute particulière et qui n'a peut être pas de solution.

Je voudrais savoir et surtout comment faire pour tracer le déroulement d'un
programme (suite de macro VBA).
J'ai un Classeur Excel (Classeur1) qui utilise beaucoup de macro, certaines
très longues à tracées d'autres très courtes. Pour débuguer plus facilement
cette enchevètrement de macro, j'aimerais pouvoir obtenir sur une feuille
d'un autre classeur (Classeur2), la liste des macros dans l'ordre ou elles
sont éxécuter sur le Classeur1.

Par exemple dans mon Classeur1 comporte un Objet image "Imprimer" qui lance
la macro "Private Sub Workbook_BeforePrint(Cancel As Boolean)"

Je voudrais que sur la Feuil1 du Classeur2 il soit noté :
en A1 "Private Sub Image1_Click()"
et en A2 "Private Sub Workbook_BeforePrint(Cancel As Boolean)"
...etc. suivant les macro qui vont être éxecutées

Si c'est possible et que vous avez un bout de code pour faire ça, vraiment
je suis preneur.

@+
Philippe

1 réponse

Avatar
michdenis
Bonjour,

Une suggestion simple à mettre en place

A ) Déclare dans un module standard, une variable dans le haut de ce dernier
Public Z as Integer

Et en début de chaque procédure concernée, tu insères ces 2 lignes de code

Z = Z +1
Worksheets("NomDeLaFeuille").Range("A" & Z).valeur = _
"Titre de déclaration de la procédure où tu insères la ligne"

Une autre approche :
Tu pourrais avoir le même résultat affiché dans la fenêtre Exécution
dans l'interface VBA
A ) Dans la fenêtre de l'éditeur de code, utilise le raccourci clavier Ctrl + G
pour afficher la fenêtre Exécution
B ) Au début de chaque procédure, tu insères la ligne de code :
Debug.Print "NomDeLaProcédure"
C ) lors de son exécution, chaque procédure va indiquer sur une ligne dans la
fenêtre exécution, le nom de la procédure
D ) Tu peux laisser cette ligne de code là après ton test. Elle n'intervient pas
dans le déroulement de la macro.





"Gouap" a écrit dans le message de groupe de discussion :

Bonjour à tous,

J'ai une question toute particulière et qui n'a peut être pas de solution.

Je voudrais savoir et surtout comment faire pour tracer le déroulement d'un
programme (suite de macro VBA).
J'ai un Classeur Excel (Classeur1) qui utilise beaucoup de macro, certaines
très longues à tracées d'autres très courtes. Pour débuguer plus facilement
cette enchevètrement de macro, j'aimerais pouvoir obtenir sur une feuille
d'un autre classeur (Classeur2), la liste des macros dans l'ordre ou elles
sont éxécuter sur le Classeur1.

Par exemple dans mon Classeur1 comporte un Objet image "Imprimer" qui lance
la macro "Private Sub Workbook_BeforePrint(Cancel As Boolean)"

Je voudrais que sur la Feuil1 du Classeur2 il soit noté :
en A1 "Private Sub Image1_Click()"
et en A2 "Private Sub Workbook_BeforePrint(Cancel As Boolean)"
...etc. suivant les macro qui vont être éxecutées

Si c'est possible et que vous avez un bout de code pour faire ça, vraiment
je suis preneur.

@+
Philippe