L'informatique à votre portée
L'informatique prêt-à-porter

Faites appel à moi pour vos formations
sur les dpts 81, 31, 82, 11 et 67 (Strasbourg)
Confiez moi vos développements Office

FacebookTwitterGoogle BookmarksLinkedin

Gestionnaire d'erreurs

Imprimer E-mail
4 mars 2014

Le principe de fonctionnement d'un gestionnaire d'erreur fonctionne ainsi :

Sub MaProcédure()
     On Error GoTo GestionErreur
     'début du code
     '....
     'Fin du code

     Exit Sub
GestionErreur:
     'code de gestion d'erreur
     'avec retour dans le code après gestion ou sortie de la procédure

End Sub

L'instruction On Error permet de déclencher une action selon le paramètre ajouté et ne concerne que la procédure dans laquelle elle est inscrite. :

Éléments mis à votre disposition

Imprimer E-mail
4 mars 2014

L'instruction On Error permet de créer un gestionnaire d'erreur, elle se déclenche lorsqu'une erreur survient.

  • L'objet Err qui contient des propriétés sur l'erreur qui vient de se produire, dont la propriété Number qui donne le numéro d'erreur et la propriété Description qui donne le texte standard de description de cette erreur.
  • L'instruction Resume qui permet de reprendre le code à différents endroit.
  • L'instruction Exit qui permet de sortir d'une procédure immédiatement.

 

Pourquoi ?

Imprimer E-mail
4 mars 2014

Lorsqu'une erreur survient, un message s'affiche, celui-ci est difficile de compréhension pour l'utilisateur, mais de plus la procédure s'interromps, ce qui peut poser de gros problème pour votre application. Par exemple, une feuille de classeur est protégée, votre procédure déprotège la feuille, modifie des données puis normalement reprotège cette feuille. Mais si votre procédure contient une erreur, votre feuille peut rester déprotégée et l'utilisateur peut alors la modifier à volonté. Autre exemple, votre procédure affiche le curseur de travail pendant son exécution, mais si une erreur survient le curseur normal ne revient pas, ce qui peut perturber l'utilisateur.
Pour éviter ce type d'inconvénient, vous devez :

  • tout d'abord tester votre code le plus possible pour les corriger, en utilisant tous les moyens expliqués dans le chapitre Débogage. Vous pourrez ainsi ajouté le code adéquat pour éviter une erreur, par exemple interdire une division si le diviseur est égal à 0.
  • mais VBA vous permet également de détecter les erreurs et d'effectuer certaines actions pour y remédier.

En ajoutant un gestionnaire d'erreurs, vous pourrez soit remplacer les messages d'erreurs peut explicite pour l'utilisateur, soit remettre l'application en état de travail correct (reprotéger une feuille, un document, remettre le curseur en état normal, etc...), soit corriger l'erreur puis reprendre le cours de votre procédure.