VBA – Quitter une Procédure ou une Fonction

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on janvier 12, 2022

En VBA, vous pouvez quitter une procédure ou une fonction à l’aide des instructions Exit Sub ou Exit Function.

Exit Sub
Exit Function

Lorsque l’exécution du code arrive à Exit Sub ou Exit Function, il quitte une sous-procédure ou une fonction et poursuit l’exécution de tout autre code.

Si vous voulez apprendre comment sortir d’une sous-procédure en cas d’erreur, cliquez sur ce lien : VBA On Error Exit Sub

Si vous voulez apprendre comment terminer l’exécution d’un code entier, cliquez sur ce lien : VBA End

Sortir d’une Sous-Procédure (Sub) en VBA

Vous allez voir dans l’exemple ce qui se passe lorsque nous utilisons la commande Exit Sub dans une sous-procédure. Nous avons créé une procédure nommée ExitSub, qui contient la commande Exit Sub. L’autre procédure nommée TestExitSub appelle celle-ci. Voici le code :

Private Sub ExitSub()

    Dim i As Integer

    For i = 1 To 10  
        If i = 5 Then
            Exit Sub
            MsgBox "La valeur de i est" & i
        End If
    next i

End Sub


Private Sub TestExitSub()
    Call ExitSub
    MsgBox "Procédure Quittée"
End Sub

Dans la procédure « ExitSub », nous entrons d’abord dans la boucle For si la valeur de i est inférieure à 10 :

For i = 1 To 10

Next i

Ensuite, nous vérifions si la valeur de i est égale à 5, en utilisant la commande If. Si la valeur est 5, nous souhaitons sortir de la procédure et retourner la boîte de message avec la valeur de i :

If i = 5 Then 
     Exit Sub
     MsgBox "La valeur de i est" & i    
End If

Si la condition n’est pas remplie, l’instruction suivante augmente i de 1 et entre à nouveau dans la boucle For :

Next i

Dans le CallExitSub, nous appelons d’abord le Sub ExitSub:

Call ExitSub

Ensuite, nous renvoyons la boîte de message :

MsgBox "Exit Sub"

Si vous exécutez le code TestExitSub, il appellera d’abord la procédure ExitSub. Si vous exécutez ce code en mode débogage, vous verrez qu’il parcourt la boucle 5 fois. A la5ème itération, la valeur de la variable i devient 5 et le code entre dans le corps de l’instruction If. Maintenant le Sub ExitSub est quitté et retourné à la procédure initiale TestExitSub. La ligne suivante est MsgBox « Exit Sub » :

Comme vous pouvez le constater, la commande ExitSub est exécutée juste après la commande Exit Sub , de sorte que la MsgBox « La valeur de i est » & i ne sera jamais exécutée.

Quitter une Fonction en VBA

La sortie d’une fonction en VBA est similaire à la sortie d’une sous-procédure, mais la commande qui doit être utilisée est Exit Function. Dans l’exemple, nous avons créé la fonction ExitFunction qui renvoie un nombre entier. Le Sub TestExitFunction appelle cette fonction. Voici le code :

Private Function ExitFunction() As Integer

    Dim i As Integer

    For i = 1 To 10
        If i = 5 Then
            ExitFunction = i
            Exit Function
        End If
    Next i

End Function


Private Sub TestExitFunction()
    Dim intFonction As Integer
    intFonction = ExitFunction()
    MsgBox "La valeur de intFonction est " & intFonction 

End Sub

Dans la fonction nommée ExitFunction, nous entrons d’abord dans la boucle For si la valeur de i est inférieure à 10 :

For i = 1 To 10

Next i

Ensuite, nous vérifions si la valeur de i est égale à 5, en utilisant la commande If. Si la valeur est 5, nous attribuons la valeur de i au résultat de la fonction et quittons la fonction :

If i = 5 Then
    ExitFunction = i
    Exit Function
End If

Si la condition n’est pas remplie, l’instruction « next » augmente i de 1 et entre à nouveau dans la boucle For :

Next i

Dans la fonction TestExitFunction, nous appelons d’abord la fonction ExitFunction: Pour cela, nous devons déclarer la variable intFonction de type integer et lui affecter le résultat de la fonction ExitFunction:

Dim intFonction As Integer

intFonction = ExitFunction()

Après cela, nous retournons la boîte de message avec la valeur de intFunc:

MsgBox "La valeur de intFunc est " & intFunc

Si vous exécutez la fonction TestExitFunction, elle appellera d’abord la fonction ExitFunction. Si vous exécutez ce code en mode débogage, vous verrez qu’il parcourt la boucle 5 fois. A la5ème itération, la valeur de la variable i devient 5 et le code entre dans le corps If. Maintenant, la valeur de la ExitFunction devient i et la fonction est quittée et renvoyée à la TestExitFunction. La ligne suivante est MsgBox « La valeur de intFonction est  » & intFonction:

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