VBA – Utilisation de « On Error » et « Exit Sub »

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on décembre 23, 2021

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! vba save as


Learn More!
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA