Comment utiliser l’instruction GoTo dans VBA ?

L’instruction `GoTo` en VBA (Visual Basic for Applications) permet de transférer immédiatement l’exécution du code vers une autre partie du programme spécifiée par une étiquette (label). Cette instruction peut être utile pour sauter certaines parties du code ou pour gérer des erreurs.

Voici comment utiliser l’instruction `GoTo` :

  • Déclarez une étiquette : Une étiquette est simplement un nom suivi d’un deux-points (`:`). Elle indique la destination vers laquelle `GoTo` peut sauter.
  • Utilisez l’instruction `GoTo` : Écrivez `GoTo` suivi du nom de l’étiquette pour transférer le contrôle du programme à cet endroit.

Voici un exemple simple :

Sub UtiliserGoTo()

    Dim nombre As Integer
    nombre = 5
    
    If nombre > 0 Then
        GoTo Positif
    Else
        GoTo Negatif
    End If

Positif:
    MsgBox "Le nombre est positif."
    Exit Sub

Negatif:
    MsgBox "Le nombre est négatif."

End Sub

Notes importantes :

  • Lisibilité du Code : Bien qu’utile, l’utilisation excessive de `GoTo` peut rendre le code difficile à suivre et à maintenir. Il est souvent préférable d’utiliser des structures de contrôle comme `If…Else`, `For…Next`, `Do…Loop`, etc.
  • Gestion des erreurs : `GoTo` est parfois utilisé dans la gestion des erreurs en VBA avec l’instruction `On Error GoTo`. Cela permet de rediriger le flux d’exécution vers un gestionnaire d’erreurs en cas d’erreur d’exécution.

Exemple de gestion des erreurs :

Sub ExempleGestionErreur()

    On Error GoTo GestionErreur

    Dim num As Integer
    Dim resultat As Double
    
    ' Provoque une erreur si num est égal à 0
    num = 0
    resultat = 10 / num

    Exit Sub

GestionErreur:
    MsgBox "Une erreur s'est produite : " & Err.Description

End Sub

Dans cet exemple, si une erreur se produit dans la division, le programme exécute le code sous l’étiquette `GestionErreur`.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project