Macros-commandes VBA/Annexe/La gestion des erreurs
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.
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. |
Voir aussi
[modifier | modifier le wikicode]