Accueil/Cours gratuits/Bibliothèque VBA/Débogage/On Error et gestion d'erreurs
Cours VBA gratuit | Débogage

On Error et gestion d'erreurs

Gratuit, sans inscription Niveau 3 / 3 | Avancé Lecture 8 min V1.2 | 29/10/2026

Un fichier absent, une feuille renommée, une saisie inattendue : même une macro bien écrite peut rencontrer une erreur. Plutôt que d'afficher la fenêtre grise de VBA à l'utilisateur, on intercepte l'erreur et on réagit proprement.

Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer

01Définition

En une phrase

On Error indique à VBA quoi faire quand une erreur survient : sauter à un gestionnaire d'erreur, passer à la ligne suivante, ou revenir au comportement normal.

InstructionEffet
On Error GoTo Etiquetteen cas d'erreur, sauter à la ligne Etiquette:
On Error Resume Nextignorer l'erreur et passer à la ligne suivante
On Error GoTo 0revenir au comportement normal (arrêt sur erreur)

02La structure recommandée

Un gestionnaire d'erreur propre
Sub ImporterFichier()
    On Error GoTo Erreur

    Workbooks.Open "C:\Exports\ventes.xlsx"
    ' ... suite du traitement ...

    Exit Sub          ' indispensable : on ne passe pas dans le gestionnaire si tout va bien

Erreur:
    MsgBox "Import impossible." & vbCrLf & _
           "Erreur " & Err.Number & " : " & Err.Description, vbCritical
End Sub

L'objet Err décrit la dernière erreur : Err.Number donne son numéro, Err.Description son libellé.

03On Error Resume Next, avec modération

Elle sert à tester une instruction qui peut échouer, puis à vérifier le résultat. Remettez toujours le comportement normal juste après.

Vérifier qu'une feuille existe
Function FeuilleExiste(nom As String) As Boolean
    Dim ws As Worksheet
    On Error Resume Next
    Set ws = ThisWorkbook.Worksheets(nom)
    On Error GoTo 0
    FeuilleExiste = Not ws Is Nothing
End Function

04Reprendre après l'erreur

Dans le gestionnaire, Resume réexécute la ligne qui a échoué (après correction), et Resume Next reprend à la ligne qui suit. Utilisez-les seulement si vous avez corrigé la cause, sinon la macro tourne en rond.

05Pièges à éviter

⚠️ PiègeOublier Exit Sub

Sans Exit Sub avant l'étiquette, la macro termine son travail... puis passe dans le gestionnaire et affiche un message d'erreur alors que tout s'est bien passé.

⚠️ PiègeResume Next sur toute la macro

Placé en tête de macro et jamais annulé, On Error Resume Next masque toutes les erreurs : la macro produit des résultats faux sans que personne ne le sache.

⚠️ PiègeGérer avant de comprendre

Pendant le développement, laissez les erreurs s'afficher et utilisez le pas à pas pour les comprendre. Le gestionnaire se pose à la fin, pour les erreurs que vous ne pouvez pas éviter.

06Questions fréquentes

Comment gérer les erreurs en VBA avec On Error ?

On Error indique à VBA quoi faire quand une erreur survient : sauter à un gestionnaire d'erreur, passer à la ligne suivante, ou revenir au comportement normal.

Quel est le piège le plus fréquent avec On Error ?

Oublier Exit Sub. Sans Exit Sub avant l'étiquette, la macro termine son travail... puis passe dans le gestionnaire et affiche un message d'erreur alors que tout s'est bien passé.

La fiche « On Error et gestion d'erreurs » est-elle gratuite ?

Oui. La fiche est en accès libre et gratuit, sans inscription : vous pouvez la lire en ligne et télécharger sa version PDF. Elle fait partie du cours VBA gratuit de mesetudesdecas.fr, qui compte 21 fiches.

Pour les formateurs

Passez de la fiche à la mise en situation

Les études de cas mesetudesdecas.fr placent vos apprenants face à un vrai besoin d'entreprise. L'étude de cas XL-05 fait automatiser un devis commercial de bout en bout, macros comprises, avec énoncé, corrigé et pas-à-pas du formateur.

Découvrir l'étude de cas XL-05
Voir aussi

Toutes les fiches du cours VBA gratuit

Voir aussi le cours gratuit sur les formules Excel

Fiche V1.2 | Dernière mise à jour : 29/10/2026 | Clément Delobel, formateur Excel et VBA