Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. VBA Excel (versions 2021 et Microsoft 365)
  3. Débogage et gestion des erreurs
Extrait - VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
Extraits du livre
VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
2 avis
Revenir à la page d'achat du livre

Débogage et gestion des erreurs

Les différents types d’erreur

On distingue différents types d’erreur dans le langage VBA :

  • Les erreurs de syntaxe.

  • Les erreurs de compilation.

  • Les erreurs d’exécution.

  • Les erreurs de logique.

1. Les erreurs de syntaxe

Les erreurs de syntaxe peuvent être décelées automatiquement lors de la saisie du code dans VBA.

 Pour activer la vérification de syntaxe, dans le menu Outils, sélectionnez Options, puis sélectionnez l’onglet Éditeur et cochez la case Vérification automatique de la syntaxe.

Exemple

images/10RI01N.png

Les erreurs de syntaxe non corrigées provoqueront une erreur de compilation, d’où le message affiché.

2. Les erreurs de compilation

Les erreurs de compilation sont décelées lorsque Excel tente de compiler votre code.

Le code VBA peut être compilé de deux façons :

  • À la demande en sélectionnant l’option Compiler du menu Débogage. Dans ce cas le code est entièrement compilé.

  • Automatiquement lors de l’exécution du code. Dans ce cas, le code contenu dans les procédures n’est compilé que lors du premier appel de la procédure. Les procédures non appelées ne seront pas compilées.

Il est recommandé de compiler le programme avant de l’exécuter afin de gagner du temps sur la mise au point.

Exemple

images/10RI02N.png

Il est possible d’anticiper les erreurs d’exécution dues à des variables non déclarées en utilisant l’instruction Option Explicit. Si vous tentez d’utiliser un nom de variable non déclarée, une erreur se produit lors de la compilation.

3. Les erreurs d’exécution

Les erreurs d’exécution sont décelées lorsque Excel tente d’exécuter votre code. Une instruction, une opération...

Débogage

1. Présentation

Le débogage peut être activé de différentes façons :

  • En exécutant le programme pas à pas.

  • En marquant des points d’arrêt au niveau d’instructions VBA.

  • En cliquant sur le bouton de commande Débogage lorsqu’une erreur d’exécution survient.

Les différents outils de débogage permettent alors :

  • De connaître à tout moment la valeur des variables ou des expressions.

  • D’exécuter des instructions.

  • De modifier interactivement le code.

  • D’exécuter le code pas à pas.

  • D’ajouter des points d’arrêt.

2. La barre d’outils Débogage

Le barre d’outils Débogage permet d’accéder directement aux différents outils de débogage.

images/10RI04N.png

1. Mode création : active ou désactive le mode création.

2. Exécuter (raccourci-clavier [F5]) : exécute le code de la procédure en cours, de la feuille UserForm active ou d’une macro.

3. Arrêt (raccourci-clavier [Ctrl][Pause]) : interrompt l’exécution du programme en cours et passe en mode Arrêt.

4. Réinitialiser : efface le contenu des variables et réinitialise le projet.

5. Basculer le point d’arrêt (raccourci-clavier [F9]) : définit ou supprime un point d’arrêt sur la ligne en cours ; le code est exécuté jusqu’au point d’arrêt, puis passe en mode débogage.

6. Pas à pas détaillé (raccourci-clavier [F8]) : exécute le code en marquant un arrêt après chaque instruction de la procédure en cours et des procédures appelées. 

7. Pas à pas principal (raccourci-clavier [Maj][F8]) : exécute le code en marquant un arrêt après chaque instruction de la procédure...

Gestion des erreurs en VBA

Lorsqu’une erreur se produit, VBA génère parfois une erreur d’exécution qui interrompt l’application. D’autres erreurs peuvent amener le code VBA à se comporter de manière imprévisible.

Pour éviter ceci, il est possible de traiter l’erreur à l’aide des instructions et fonctions suivantes :

On Error (instruction)

Indique une séquence d’instructions à exécuter en cas d’erreur.

Syntaxe 1

On Error GoTo ligne 

Active la routine de gestion d’erreur qui commence à l’endroit spécifié par l’argument ligne.

L’argument ligne doit être une étiquette de ligne ou un numéro de ligne.

La ligne doit appartenir à la même procédure que l’instruction On Error.

Si l’argument ligne est un numéro de ligne, celui-ci doit obligatoirement être le premier caractère non vide de la ligne.

Syntaxe de la routine de gestion d’erreur

Ligne: 
   instructions 
Resume 

L’instruction Resume permet de reprendre l’exécution du code lorsque la routine de gestion d’erreur est terminée, c’est-à-dire une fois réglé le problème posé par l’erreur.

Vous pouvez utiliser trois syntaxes différentes pour Resume :

Resume 0

reprise de l’exécution du code là où l’erreur s’est produite.

Resume Next

reprise à partir de l’instruction qui suit immédiatement celle qui a généré l’erreur.

Resume Ligne

reprise à l’endroit spécifié par l’argument Ligne.

Pour empêcher l’exécution du code de gestion d’erreur en l’absence d’erreurs, placez une instruction Exit Sub, Exit Function ou Exit...