L'instruction GoTo dans VBA vous permet de sauter à une ligne de code.
Créez d'abord une étiquette de ligne n'importe où dans votre code :
1 | Sauter: |
Ajoutez ensuite à l'instruction « GoTo » pour accéder au libellé de la ligne
1 | Aller à Ignorer |
Aller à Exemples
Cet exemple teste l'année. Si l'année est 2022 ou plus tard, il ira à l'étiquette de ligne de saut. Cela vous permet de sauter le code si certaines conditions sont remplies.
123456789101112 | Sous GoTo_Example()Année sombre en tant qu'entierannée = 2019Si année >= 2019 Alors GoTo Ignorer'Données de processus pour les années < 2022MsgBox "L'année est antérieure à 2022"Sauter:Fin du sous-marin |
Aller à plusieurs étiquettes de ligne
Vous pouvez également utiliser des instructions GoTo pour accéder aux lignes de code pertinentes. Ajustons notre exemple précédent pour accéder à différents emplacements de code en fonction de l'année :
1234567891011121314151617181920212223242526272829303132 | Sous GoTo_Statement()Année sombre en tant qu'entierannée = 2019Si année = 2019 AlorsAller à l'année 2019Sinon si année = 2010 AlorsAller à l'année 2020AutreAller à l'année 2021Fin siannée 2019 :'Processus 2022MsgBox "L'année est 2022"GoTo EndProcannée 2020 :'Processus 2022MsgBox "L'année est 2022"GoTo EndProcannée 2021 :'Processus 2022+MsgBox "L'année est 2022+"FinProc :Fin du sous-marin |
Notez le "GoTo EndProc" avant chaque étiquette de ligne. Nous avons ajouté cette ligne de code afin que ces sections de code soient ignorées à moins qu'elles ne soient accessibles par le « GoTo » approprié.
GoTo Error Handler Fin de procédure
Utilisons maintenant la gestion des erreurs pour aller à la fin de la procédure s'il y a une erreur.
123456789101112 | Sous GoTo_OnError ()Diminuer en tant qu'entierEn cas d'erreur GoTo EndProcje = 5 / 0MsgBox jeFinProc :Fin du sous-marin |
GoTo Répéter le code
Notre dernier exemple utilisera l'instruction GoTo pour répéter du code.
Ci-dessous, nous utilisons une boîte de message Oui / Non (Cliquez pour en savoir plus) pour confirmer que l'utilisateur reconnaît l'avertissement. S'ils cliquent sur « Non », la boîte de message s'affichera à nouveau jusqu'à ce qu'ils cliquent sur « Oui » (voir GIF ci-dessous).
1234567891011 | Sous GoTo_YesNoMsgBox()Répéter le message :Réponse faible en tant qu'entieranswer = MsgBox("AVERTISSEMENT : ce fichier a été ouvert en tant que fichier en lecture seule, ce qui signifie que les modifications que vous apportez ne seront pas enregistrées à moins que vous n'ayez des droits d'accès en écriture. " & _Chr(13) & Chr(13) & "Sélectionnez Fichier, Enregistrer sous pour enregistrer une copie avant de travailler dans ce fichier." & vbNewLine & vbNewLine & "Comprenez-vous ?", vbExclamation + vbYesNo, "AVERTISSEMENT !")Si réponse = vbNo Then GoTo RepeatMsg 'Répétez jusqu'à ce que l'utilisateur clique sur "Oui"Fin du sous-marin |
VBA GoTo une étiquette de ligne dans Access VBA
Tous les exemples ci-dessus fonctionnent exactement de la même manière dans Access VBA et dans Excel VBA.
1234567 | Sous TestGoTo()Sur erreur GoTo se terminantDoCmd.OpenForm "FrmClients"Quitter le sousfin:MsgBox "Impossible d'ouvrir le formulaire"Fin du sous-marin |