Chapitre 5 - Prendre en compte des conditions
Fréquemment dans un programme on souhaite que certaines tâches (instructions) soient réalisées dans certains cas et pas dans d’autres. Ceci se traduit en VBA par l’intermédiaire des mots clés If... Then ..., ElseIf... Then... et Else....
Syntaxe :
If condition Then
Instructions_si_vrai
[Else
Instructions_si_faux]
End If
Dans une structure de bloc If, il faut impérativement aller à la ligne après le Then.
Lorsque le bloc If contient une ou plusieurs sections ElseIf, les différentes conditions sont testées jusqu’à ce qu’une soit vérifiée. Si aucune condition ne renvoie True, les instructions de la section Else, si elle existe, sont exécutées. Si aucune condition n’est vérifiée et si la section Else n’existe pas, le bloc If ne fait rien.
Syntaxe :
If condition_1 Then
Instructions_1
ElseIf condition_2 Then
Instructions_2
ElseIf condition_3 Then
Instructions_3
...
Else
Instructions_n
End If
VBA offre la possibilité d’utiliser les opérateurs logiques suivants :
condition1 Or condition2 : renvoie True si l'une des deux conditions au moins est vérifiée ;
condition 1 Xor condition2 : renvoie True si une et une seule des deux conditions est vérifiée ;
condition 1 And condition2 : renvoie True si les deux conditions sont vérifiées;
Not condition1 : renvoie True si la condition n'est pas vérifiée.
Exemple :
Sub BonjourHeureIf()
Dim heure As Integer
Dim mes As String
heure = Left(Time, 2)
If heure > 7 And heure < 12 Then
mes = "Bonjour"
ElseIf heure >= 12 And heure < 18 Then
mes = "Bon après-midi"
ElseIf heure >= 18 And heure < 22 Then
mes = "Bonne soirée"
Else
mes = "Bonne nuit"
End If
Range("A1").Value = mes
End Sub