Sur... GoSub, On... Instructions GoTo

Permet de créer une branche vers l'une des lignes spécifiées, selon la valeur d'une expression.

Syntaxe

OnexpressionGoSubdestinationlist
OnexpressionGoTodestinationlist

La syntaxe des instructions On...GoSub et On...GoTo présente les éléments suivants :

Élément Description
expression Obligatoire. Toute expression numérique renvoyant un nombre entier compris encore 0 et 255 inclus. Si expression est un nombre qui n'est pas un entier, il est arrondi avant d'être évalué.
destinationlist Obligatoire. Liste de numéros de ligne ou d'étiquettes de ligne séparés par des virgules.

Remarques

La valeur de expression détermine la ligne vers laquelle la branche est créée dans destinationlist. Si la valeur de expression est inférieure à 1 ou supérieure au nombre d'éléments de la liste, vous obtenez l'un des résultats suivants :

Si expression est Then
Égale à 0 Le contrôle passe à l'instruction qui suit On...GoSub ou On...GoTo.
Supérieure au nombre d'éléments de la liste Le contrôle passe à l'instruction qui suit On...GoSub ou On...GoTo.
Negative Une erreur se produit.
Supérieure à 255 Une erreur se produit.

Vous pouvez mélanger des numéros et des étiquettes de ligne dans la même liste. Utilisez autant d’étiquettes de ligne et de numéros de ligne que vous le souhaitez avec Activé... GoSub et On... Accédez à. Toutefois, si vous utilisez plus d'étiquettes ou de numéros qu'une ligne ne peut en contenir, vous devez utiliser le caractère de continuation de ligne pour continuer la ligne logique sur la ligne physique suivante.

Conseil

Select Case permet de créer de multiples branches de manière plus structurée et plus souple.

Exemple

Dans cet exemple, les instructions On...GoSub et On...GoTo permettent la création de branche vers des sous-routines et des étiquettes de ligne, respectivement.

Sub OnGosubGotoDemo() 
Dim Number, MyString 
 Number = 2 ' Initialize variable. 
 ' Branch to Sub2. 
 On Number GoSub Sub1, Sub2 ' Execution resumes here after 
 ' On...GoSub. 
 On Number GoTo Line1, Line2 ' Branch to Line2. 
 ' Execution does not resume here after On...GoTo. 
 Exit Sub 
Sub1: 
 MyString = "In Sub1" : Return 
Sub2: 
 MyString = "In Sub2" : Return 
Line1: 
 MyString = "In Line1" 
Line2: 
 MyString = "In Line2" 
End Sub

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.