VBA – Aller à une Étiquette de Ligne (GoTo)
In this Article
L’instruction GoTo de VBA vous permet d’accéder à une ligne de code. Créez d’abord une étiquette de ligne n’importe où dans votre code :
Sauter :
Ajoutez ensuite l’instruction « GoTo » pour faire passer l’exécution du code à l’étiquette de ligne.
Goto Sauter
Exemples de GoTo
Cet exemple teste l’année. Si l’année est 2019 ou ultérieure, il passe à l’étiquette de ligne Sauter. Cela vous permet d’ignorer du code si certaines conditions sont remplies.
Sub Exemple_Goto()
Dim année As Integer
année = 2019
If année >= 2019 Then Goto Sauter
'Traitement des données pour les années < 2019
MsgBox "L'année est antérieure à 2019"
Sauter :
End Sub
Aller à des Étiquettes de Lignes Multiples
Vous pouvez également utiliser les instructions GoTo pour accéder à des lignes de code pertinentes. Modifions notre exemple précédent afin d’accéder à différents emplacements de code en fonction de l’année en cours :
Sub GoTo_Étiquettes()
Dim année As Integer
année = 2019
If année = 2019 Then
GoTo année2019
ElseIf année = 2010 Then
GoTo année2020
Else
GoTo année2021
End If
année2019:
'Traitement 2019
MsgBox "L'année est 2019"
GoTo FinProc
année2020:
'Traitement 2020
MsgBox "L'année est 2020"
GoTo FinProc
année2021:
'Traitement 2021+
MsgBox "L'année est 2021+"
FinProc:
End Sub
Remarquez le « GoTo FinProc » avant chaque étiquette de ligne. Nous avons ajouté cette ligne de code pour que ces sections de code soient sautées à moins qu’elles ne soient accessibles par le « GoTo » correspondant.
Gestionnaire d’Erreur – GoTo Fin de la Procédure
Utilisons maintenant l’instruction GoTo pour la gestion d’erreur en allant à la fin de la procédure s’il y a une erreur.
Sub GoTo_OnError ()
Dim i As Integer
On Error GoTo FinProc
i = 5 / 0
MsgBox i
FinProc :
End Sub
Répétition de Code
Notre dernier exemple utilise 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’il clique sur « Non », la boîte de message s’affiche à nouveau jusqu’à ce qu’il clique sur « Oui » (voir GIF ci-dessous).
Sub GoTo_BoiteMessageOuiNon()
RépéterMsg:
Dim réponse As Integer
réponse = MsgBox("AVERTISSEMENT : Ce fichier a été ouvert en tant que fichier en lecture seule, ce qui signifie que toute modification apportée ne sera pas enregistrée tant que vous ne disposerez pas de droits d'écriture. " & _
vbCrLf & vbCrLf & "Sélectionnez Fichier, Enregistrer sous pour enregistrer une copie avant de travailler dans ce fichier" & vbNewLine & vbNewLine & "Avez-vous compris?", vbExclamation + vbYesNo, "AVERTISSEMENT!")
If réponse = vbNo Then GoTo RépéterMsg 'Répétez jusqu'à ce que l'utilisateur clique sur "Oui"
End Sub
Aller à une Étiquette de Ligne en Access VBA
Tous les exemples ci-dessus fonctionnent exactement de la même manière en Access VBA et en Excel VBA.
Sub TestGoTo()
On Error Goto FinProc
DoCmd.OpenForm "FrmClients"
Exit Sub
FinProc :
MsgBox "Impossible d'ouvrir le formulaire"
End Sub
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!