SurveillerVBA

Retour vers Excel

Surveiller le déroulement d'une procédure ou fonction VBA

En cours de développement, on rencontre souvent des résultats inattendus car notre raisonnement n'est pas encore assez affiné ou l'on est vraiment à côté de la plaque.
La solution est alors de provoquer une exécution pas à pas et ainsi vérifier ce qui ne fonctionne pas correctement...

Avant toute chose, pensez à sauvegarder votre fichier même s'il est erroné

Cela se passe dans le VBE (Visual Basic Editor). On en provoque l'affichage en utilisant les touches ALT + F11. Une fois dans cette interface, on place un point d'arrêt en cliquant dans la marge de gauche, cela n'est possible que sur une ligne de code qui exécute quelque chose.

Dès que l'événement déclencheur de la procédure ou de la fonction, le code débutera son exécution et viendra se positionner sur ce point d'arrêt et attendra une action du développeur. L'action en attente est alors surlignée en jaune

On utilise alors la touche F8 pour exécuter le code ligne par ligne. En positionnant le curseur de la souris sur une variable on visualise sa valeur du moment (elle variera si vous exécutez une boucle, par exemple) dans une infobulle.

On peut arrêter le déroulement d'une macro en utilisant les touches CTRL + Pause mais certains ordinateurs n'ont pas cette touche, c'est le cas sur mon Dell. Si par ma bêtise, je provoque une boucle infinie, je n'aurai d'autre choix que de lancer le gestionnaire des tâches de Windows en réalisant un clic droit sur la barre des tâches et de tuer le processus d'Excel (si vous avez sauvegardé votre fichier avant de lancer le pas à pas, vous récupérez votre fichier en le rechargeant)

Après plusieurs pas à pas, vous constaterez peut être que l'exécution du code ne pose plus de souci, vous pouvez alors "lâcher" le reste des lignes de code avec la touche F5.
Vous avez aussi les boutons de lecture à votre disposition. Attention si votre point d'arrêt est toujours actif, le déroulement du code sera à nouveau stoppé sur cette ligne. Pour libérer totalement le code, il faut l'enlever. Idem lorsque votre débogage est terminé.