Instruction If...Then...Else...End If

Exécute de manière conditionnelle un groupe d'instructions en fonction de la valeur d'une expression.

Syntaxe

If condition Then statements [Else elsestatements] Vous pouvez également utiliser la syntaxe sous forme de bloc :

If condition Then
   [statements]
[ElseIf condition-n Then
   [elseifstatements]] . . .
[Else
   [elsestatements]]
End If

Arguments :

  • condition : expression valide. Expression numérique ou de chaîne qui renvoie True ou False. Si l'argument condition est NULL, il est considéré comme False.

  • statements : instructions séparées par le signe deux-points. Exécutées si condition est True.

  • condition-n : comme pour condition.

  • elseifstatements : instructions exécutées si l'argument condition-n associé a la valeur True.

  • elsestatements : instructions exécutées si aucune expression condition ou condition-n précédente n'a la valeur True.

Remarques

Vous pouvez utiliser le format monoligne (première syntaxe) pour des tests courts et simples. Cependant, le format en bloc (seconde syntaxe) est plus structuré et offre plus de flexibilité. Il est aussi généralement plus facile à lire, à gérer et à déboguer. Ainsi, bien que le format monoligne soit pris en charge, il est recommandé d'utiliser le format en bloc.

Note:

La syntaxe monoligne est prise en charge mais n'est pas recommandée.

Avec la syntaxe monoligne, il est possible d'exécuter plusieurs instructions à la suite d'une décision If...Then, mais elles doivent toutes se trouver sur la même ligne et être séparées par le signe deux-points, comme dans l'instruction suivante :

Dim A,B,C
A=11
If A > 10 Then A = A + 1 : B = B + A : C = C + B

Lors de l'exécution d'un bloc If (seconde syntaxe), l'argument condition est testé. Si condition est True, les instructions qui suivent Then sont exécutées. Si condition est False, chaque instruction ElseIf (le cas échéant) est évaluée tour à tour. Lorsqu'une condition True est trouvée, les instructions qui suivent l'instruction Then associée sont exécutées. Si aucune des instructions ElseIf n'a la valeur True (ou s'il n'existe aucune clause ElseIf), les instructions qui suivent Else sont exécutées. Une fois les instructions suivant Then ou Else exécutées, l'exécution se poursuit avec l'instruction qui suit End If.

Les clauses Else et ElseIf sont toutes deux facultatives. Vous pouvez avoir autant d'instructions ElseIf que vous le souhaitez dans un bloc If, mais aucune ne peut apparaître après la clause Else. Les instructions de bloc If peuvent être imbriquées, c'est-à-dire contenues les unes dans les autres.

Ce qui suit le mot-clé Then est examiné pour déterminer si une instruction est un bloc If. Si quelque chose apparaît après Then sur la même ligne (autre qu'un commentaire), l'instruction est traitée comme une instruction If monoligne.

Une instruction de bloc If doit être la première instruction d'une ligne. Le bloc If doit se terminer par une instruction End If.

Exemple : instructions conditionnelles

Instruction If : exécute une seule instruction lorsqu'une condition est True

Dim i, strVal
i=10
If i=10 Then strVal = "Hello"

Pour exécuter plusieurs instructions lorsque la condition If est True, vous devez placer chaque instruction sur des lignes distinctes et terminer l'instruction par le mot-clé "End If" :

Dim i, strVal
i=10
If i=10 Then
    If i=10 Then strVal = "Hello"
    i = i+1
End If

Instruction If...Then...Else : sélectionne l'un des deux ensembles de lignes à exécuter

Pour exécuter une instruction si une condition est True et exécuter une autre instruction si la condition n'est pas True, vous devez ajouter le mot-clé Else.

Dim i 
Dim strVal
i=5
If i=10 Then
    If i=10 Then strVal = "Hello"
    i = i+1
Else
    i= i+2
    strVal = "world"
End If

Instruction If...Then...ElseIf...Else : sélectionne l'un des nombreux ensembles de lignes à exécuter.

Pour exécuter une instruction si une condition est True et exécuter une autre instruction si la première condition n'est pas True mais qu'une autre condition est True, vous devez ajouter le mot-clé ElseIf pour toutes les conditions supplémentaires, suivi de Else à la fin :

Dim i
Dim strVal
i=14
If i=10 Then
    If i=10 Then strVal = "Hello"
    i = i+1
Elseif i=11 Then
    i= i+2
    strVal = "world"
Else
    i= i+3
    strVal = "world"
End If