VBA – Aller à une Étiquette de Ligne (GoTo)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on janvier 12, 2022

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! 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