La gestion des erreurs est un aspect essentiel de la programmation VBA Excel, en particulier lorsque les utilisateurs entrent des valeurs non valides sur une feuille de calcul. Voici un guide sur la façon de gérer les erreurs fréquentes dans Excel VBA.
La gestion des erreurs empêche non seulement le programme de se bloquer en raison d’une saisie incorrecte, mais aussi :
- Fournir un retour d’information clair aux utilisateurs concernant les erreurs qui se produisent
- Simplifiez la maintenance et le dépannage du code
En gérant bien les erreurs, les programmeurs peuvent s’assurer que le programme fonctionne correctement et que les utilisateurs ont une meilleure expérience.

Dans le monde de la programmation VBA Excel, des erreurs peuvent apparaître chaque fois qu’un utilisateur entre une valeur non valide dans une feuille de calcul. Ces erreurs, si elles ne sont pas gérées correctement, peuvent entraîner l’arrêt du programme ou donner des résultats indésirables.
Dans cet article, Bardimin abordera diverses méthodes pour identifier et corriger les erreurs courantes dans Excel VBA, ainsi que des solutions pratiques pour maintenir le bon fonctionnement du programme malgré les interruptions.
Types d’erreurs et comment écrire du code de gestion des erreurs
La gestion des erreurs dans Excel VBA est essentielle pour garantir le bon fonctionnement du programme et offre une expérience utilisateur positive. Voici quelques types courants de gestion des erreurs utilisés dans Excel VBA :
1. On Error GoTo
Ce type de gestion des erreurs est utilisé pour diriger un programme vers un morceau de code spécifique lorsqu’une erreur se produit. Une fois détecté, le flux du programme se déplacera vers une étiquette spécifique qui a été définie pour gérer l’erreur.
Private Sub CommandButton1_Click()
On Error GoTo err_handler
num1 = InputBox("Enter the first number")
num2 = InputBox("Enter the second number")
MsgBox num1 / num2
Exit Sub
err_handler:
MsgBox "Invalid division, please try again"
End Sub
Dans cet exemple, si une erreur se produit (par exemple, une division par zéro), le programme passera à l’ étiquette err_handler et affichera un message d’erreur.
2. On Error Resume Next
Avec On Error Resume Next, le programme ignorera l’erreur et continuera à exécuter le code sur la ligne suivante. Ceci est utile pour les erreurs non critiques qui ne nécessitent pas de traitement particulier.
Private Sub CommandButton2_Click()
On Error Resume Next
num1 = InputBox("Enter the first number")
num2 = InputBox("Enter the second number")
MsgBox num1 / num2
End Sub
Ici, même s’il y a une division par zéro, le programme ne s’arrêtera pas et l’exécution se poursuivra jusqu’à la ligne suivante.
L’utilisation de Resume Next doit être faite avec prudence, car elle peut cacher des erreurs importantes.
3. On Error GoTo 0
En cas d’erreur, GoTo 0 est utilisé pour désactiver la gestion des erreurs qui était précédemment activée. Après avoir utilisé cette commande, s’il y a une erreur sur la ligne suivante, le programme s’arrêtera et affichera un message d’erreur standard.
Sub ExampleGoToZero()
On Error Resume Next ' Ignore errors
Dim result As Double
result = 5 / 0 ' Errors are ignored
On Error GoTo 0 ' Disable error handling
MsgBox result
result = 5 / 0 ' This will cause the program to terminate since errors are no longer ignored
End Sub
Après avoir utilisé On Error GoTo 0, si une erreur se produit, le programme s’arrêtera comme d’habitude.