VBA – Quitter une Procédure ou une Fonction
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!Learn More!