En VBA, pour mettre fin à TOUTES les exécutions de code, utilisez le Finir commander.
1 | Finir |
Lorsque l'exécution du code vient à Finir, il terminera immédiatement l'exécution et quittera le programme.
Si vous voulez savoir comment quitter un Sub en cas d'erreur, cliquez sur ce lien : VBA On Error Exit Sub
Si vous voulez savoir comment quitter un sous ou une fonction, cliquez sur ce lien : VBA Exit Sub or Function
Quitter tout le code en VBA
Vous verrez sur l'exemple ce qui se passe quand on utilise le Finir commande en VBA. Nous avons créé un sous EndSub, qui a le Finir commande à l'intérieur. Ce sous-marin est appelé de CallEndSub. Voici le code :
123456789101112131415161718 | Private Sub EndSub()Diminuer en tant qu'entierPour i = 1 à 10Si je = 5 AlorsMsgBox "La valeur de i est " & iFinirFin siEnsuite jeFin du sous-marinPrivate Sub CallEndSub()Appeler EndSubMsgBox "End Sub"Fin du sous-marin |
Dans le EndSub, nous entrons d'abord dans la boucle For si la valeur de i est inférieure à 10 :
123 | Pour i = 1 à 10Ensuite je |
Après cela, nous vérifions si la valeur de i est égale à 5, en utilisant la commande If. Si la valeur est 5, nous retournons la boîte de message avec la valeur de i et utilisons la commande Finir.
1234567 | Si je = 5 AlorsMsgBox "La valeur de i est " & iFinirFin si |
Si la condition n'est pas remplie, l'instruction suivante augmente i de 1 et entre à nouveau dans la boucle For :
1 | Ensuite je |
Dans le CallEndSub, nous appelons d'abord le Sub EndSub:
1 | Appeler EndSub |
Après cela, nous retournons la boîte de message :
1 | MsgBox "End Sub" |
Si vous exécutez le CallEndSub, il appellera d'abord le EndSub. Si vous exécutez ce code en mode débogage, vous verrez qu'il parcourra la boucle 5 fois. Dans le 5e itération, la valeur de la variable i devient 5 et le code entre dans le corps If. Maintenant le MsgBox "La valeur de i est " & i est exécuté et Finir après ça:
Image 1. Fin VBA
Comme vous pouvez le voir, l'exécution du code est arrêtée juste après le Finir commande, donc le MsgBox « End Sub » n'est jamais exécuté.