Aller au contenu

Macros-commandes VBA/Annexe/La gestion des erreurs

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
La gestion des erreurs
Image logo représentative de la faculté
Annexe 3
Leçon : Macros-commandes VBA
Chapitre référant : Création de Fonction

Annexe de niveau 14.

Précédent :Raccourcis
Suivant :Fonctions Financières
En raison de limitations techniques, la typographie souhaitable du titre, « Annexe : La gestion des erreurs
Macros-commandes VBA/Annexe/La gestion des erreurs
 », n'a pu être restituée correctement ci-dessus.



Les types d'erreurs

[modifier | modifier le wikicode]

Lors de la création de fonction des erreurs peuvent apparaitre. Pour cela, nous vous mettons à disposition dans cette annexe les différents types d'erreurs possibles.

  • Erreurs de syntaxe : une instruction ne respectant pas la syntaxe VBA
Procédure Message
   Function test(Nom,prénom)
    Dim Nom as Sting
   End Sub
Erreur de compilation : Sting n’est pas un type valide


Les erreurs d'exécution se produisent lorsqu'une instruction tente d'accomplir une opération non valide. Chaque erreur d'exécution provoque l'arrêt des macros. La ligne en cause de l'erreur est surlignée en jaune et un message d'alerte s'affiche à l'écran.

Gestion des erreurs

Le numéro d'erreur ainsi qu'une description courte s'affichent dans la boîte de dialogue.

-Le bouton Fin permet de sortir immédiatement de la procédure.

-Le bouton Débogage ferme le message d'alerte et affiche la ligne qui a déclenché l'erreur.

-Le bouton Aide ouvre l'aide associée au code d'erreur.


  • Erreurs d'exécution prévisibles : une suite d'instructions ne respectant pas la logique VBA
Procédure Message
   Function fnMin(a, b)
    'Retourne le minimum de a ou b
     If a < b Then
         fnMin = a
     Else
         fnMin = b
     End If
   End Function
Si a et b sont de nature différente (comparer 3 et Nothing, par exemple):Erreur d'exécution 13: Incompatibilité de type


  • Erreurs d'exécution imprévisibles : une suite d'instructions qui ne fonctionnent pas dans des conditions inattendues
Procédure Message
   Sub EnregistrerClasseur
     ActiveWorkbook.Save
   End Sub
Si le lecteur (dossier) actif est en lecture seule :Erreur d'exécution 1004 Impossible d'accéder au document en lecture seule

Comment gérer les erreurs

[modifier | modifier le wikicode]

VBA dispose d'un gestionnaire d'erreurs. C'est l'instruction On Error qui valide la gestion des erreurs; le gestionnaire est ensuite activé lorsque survient une erreur

Procédure Message
 On Error Go To
Effectue un lien avec une ligne spécifique. Lorsque une erreur d'exécution se produit, l'exécution de la macro se déplace automatiquement jusqu'à cette ligne concernée par l'erreur. Ce branchement différé demeure en vigueur jusqu'à l'exécution d'une autre instruction On Error ou à la fin de la procédure Sub ou Function.
 On Error Resume Next
Lorsque une erreur d'exécution se produit, VBA passe à l'instruction suivant celle ayant causé l'erreur.


 On Error GoTo 0
Désactive toute gestion d'erreur par une ou l'autre forme de On Error.