On Error et gestion d'erreurs
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 à imprimer01Définition
On Error indique à VBA quoi faire quand une erreur survient : sauter à un gestionnaire d'erreur, passer à la ligne suivante, ou revenir au comportement normal.
| Instruction | Effet |
|---|---|
| On Error GoTo Etiquette | en cas d'erreur, sauter à la ligne Etiquette: |
| On Error Resume Next | ignorer l'erreur et passer à la ligne suivante |
| On Error GoTo 0 | revenir au comportement normal (arrêt sur erreur) |
02La structure recommandée
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.
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
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é.
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.
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.
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-05Toutes 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