PaliSkill
← Introduction au VBA

Leçon 6 / 8 — Chapitre 2: Logique conditionnelle et boucles

Gérer les erreurs avec On Error

Une macro qui rencontre une erreur inattendue (une feuille qui n'existe pas, une division par zéro) s'arrête brutalement par défaut, avec un message d'erreur technique peu clair. On Error permet de reprendre le contrôle plutôt que de laisser Excel afficher une erreur brute.

Ignorer une erreur et continuer

Sub DiviserValeurs()
    On Error Resume Next
    Dim resultat As Double
    resultat = 10 / 0
    MsgBox "Fin de la macro"
End Sub

On Error Resume Next indique à VBA de passer à la ligne suivante si une erreur survient — à utiliser avec précaution, car une erreur silencieusement ignorée peut aussi cacher un vrai bug.

Rediriger vers une gestion d'erreur dédiée

Sub OuvrirFeuille()
    On Error GoTo GestionErreur

    Worksheets("Archives").Activate
    MsgBox "Feuille ouverte avec succès"
    Exit Sub

GestionErreur:
    MsgBox "Erreur : la feuille 'Archives' n'existe pas."
End Sub

On Error GoTo GestionErreur envoie l'exécution vers une étiquette nommée dès qu'une erreur survient. Exit Sub juste avant l'étiquette évite d'exécuter la gestion d'erreur quand tout s'est bien passé.

Revenir au comportement normal

On Error GoTo 0 réactive la gestion d'erreur standard d'Excel.

Exemple concret : une macro tente d'ouvrir un classeur externe dont le nom peut avoir légèrement changé. Sans gestion d'erreur, l'utilisateur verrait un message technique incompréhensible ; avec On Error GoTo, un message clair s'affiche à la place.

À vous de jouer : écrivez une macro qui tente d'activer une feuille qui n'existe pas, avec une gestion d'erreur qui affiche un message clair.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que l'attestation finale.

6 500 XOF / 9,91 € / 10,80 $

Débloquez les 83 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.