VBA – Utilisation de « On Error » et « Exit Sub »
En VBA, vous pouvez programmer votre code pour qu’il sorte d’un sous-système lorsqu’une erreur est rencontrée. Pour ce faire, utilisez On Error GoTo et Exit Sub.
On Error Goto indique à VBA que lorsqu’une erreur est rencontrée, il doit « aller à » une section spécifique de votre code. Ex :
On Error GoTo GestionErreur
A l’intérieur de cette section, vous pouvez alors inclure la fonction Exit Sub pour quitter la sous procédure :
GestionErreur :
Exit Sub
Lisez la suite, pour voir ces lignes de code en action…
Quitter une Procédure en Cas d’Erreur en VBA
Dans cet exemple, nous allons générer une erreur en divisant par zéro :
i = 5 / 0
Voir le code complet ci-dessous. Lorsque VBA lira l’erreur, il se rendra dans la section de code GestionErreur et sortira de la procédure :
Sub TestErreur()
Dim i As Integer
On Error GoTo GestionErreur
i = 5 / 0
'Faites quelque chose avec i
MsgBox i
Exit Sub
GestionErreur:
MsgBox "Une erreur s'est produite. Fin de la procédure"
Exit Sub
End Sub
Pour spécifier la gestion des erreurs, vous devez d’abord déclarer l’instruction On Error GoTo. Elle doit être déclarée au début d’une procédure :
On Error GoTo GestionErreur
Ensuite, vous devez déclarer le code de gestion des erreurs. Il se trouve généralement à la fin du code :
GestionErreur:
MsgBox "Une erreur s'est produite. Fin de la procédure"
Exit Sub
Nous ajoutons le « Exit Sub » au-dessus du ErrorHandler parce que nous ne voulons exécuter le code ErrorHandler que s’il y a une erreur.
Exit Sub
GestionErreur:
MsgBox "Une erreur s'est produite. Fin de la procédure"
Exit Sub
End Sub
Si vous exécutez la macro, une erreur se produira en raison de la division par zéro. À ce moment-là, le code de gestion des erreurs sera exécuté. La boîte de message apparaît et la procédure est quittée.
Si vous voulez apprendre comment mettre fin à l’exécution du code en VBA, cliquez sur ce lien : Fin de l’exécution du code en VBA
Si vous voulez apprendre comment quitter un sous ou une fonction, cliquez sur ce lien : VBA Exit Sub or Function
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!