If...Then...Else, instruction (Visual Basic)

Mise à jour : novembre 2007

Exécute un groupe d'instructions soumises à une condition, en fonction de la valeur d'une expression.

If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]

Éléments

  • condition
    Obligatoire. Expression. Doit avoir pour valeur True ou False, ou à un type de données qui est implicitement convertible en Boolean.

  • Then
    Obligatoire dans la syntaxe à une seule ligne, facultatif dans la syntaxe multiligne.

  • statements
    Facultatif. Une ou plusieurs instructions qui suivent If...Then sont exécutées si condition a la valeur True.

  • elseifcondition
    Obligatoire si ElseIf est présent. Expression. Doit avoir pour valeur True ou False, ou à un type de données qui est implicitement convertible en Boolean.

  • elseifstatements
    Facultatif. Une ou plusieurs instructions qui suivent ElseIf...Then sont exécutées si elseifcondition a la valeur True.

  • elsestatements
    Facultatif. Une ou plusieurs instructions sont exécutées si aucune expression condition ou elseifcondition précédente n'a la valeur True.

  • End If
    Met fin au bloc If...Then...Else.

Notes

Vous pouvez utiliser la syntaxe à une seule ligne pour effectuer de petits tests simples. Toutefois, la syntaxe multiligne fournit une plus grande structure et davantage de souplesse. En outre, elle est généralement plus facile à lire, à gérer et à déboguer.

En présence d'une instruction If...Then...Else multiligne, condition est testé. Si condition a la valeur True, les instructions qui suivent Then sont exécutées. Si condition a la valeur False, chaque instruction ElseIf est évaluée à tour de rôle. Quand une elseifcondition de valeur True est trouvée, les instructions qui suivent immédiatement l'instruction Then correspondante sont exécutées. Si aucune elseifcondition n'a la valeur True, ou s'il n'existe aucune instruction ElseIf, les instructions qui suivent Else sont exécutées. Après l'exécution des instructions qui suivent Then, ElseIf ou Else, l'exécution se poursuit avec l'instruction qui suit End If.

Conseil :

Select...Case, instruction (Visual Basic) peut s'avérer mieux adapté à l'évaluation d'une seule expression qui possède plusieurs valeurs possibles.

Dans le cas de la syntaxe à une seule ligne, il est possible d'exécuter plusieurs instructions à partir d'une décision If...Then. Toutes les instructions doivent être présentes sur la même ligne et être séparées par le signe deux-points. C'est ce qu'illustre l'exemple suivant.

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Dans la syntaxe multiligne, l'instruction If doit être la seule instruction présente sur la première ligne. Les instructions ElseIf, Else et End If ne peuvent être précédées que par une étiquette de ligne. L'instruction If...Then...Else multiligne doit se terminer par une instruction End If.

Pour déterminer si une instruction If introduit une syntaxe multiligne, examinez ce qui suit le mot clé Then. Si tout élément autre qu'un commentaire apparaît après Then dans la même instruction, l'instruction est traitée comme une instruction If à une seule ligne. Si Then est absent, il s'agit du début d'une instruction If...Then...Else multiligne.

Les clauses ElseIf et Else sont toutes deux facultatives. Une instruction If...Then...Else multiligne peut contenir autant de clauses ElseIf que vous le souhaitez, mais aucune ne peut apparaître après une clause Else. Les syntaxes multilignes peuvent être imbriquées les unes aux autres.

Exemple

L'exemple suivant illustre l'instruction If...Then...Else sous la forme d'une ligne unique ou de plusieurs lignes.

Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
    digits = 1
ElseIf number < 100 Then
    digits = 2
Else
    digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"

Dans l'exemple précédent, la condition ElseIf a la valeur True, et la valeur 2 est assignée à digits. La dernière instruction assigne ensuite la valeur "Plusieurs" à myString.

Voir aussi

Référence

#If...Then...#Else, directives

Choose, fonction

Select...Case, instruction (Visual Basic)

Switch, fonction