Comment utiliser la fonction IF imbriquée de VBA ?
Dans VBA, vous pouvez utiliser une instruction IF dans une autre instruction IF pour créer des IF imbriqués. En termes simples, vous pouvez exécuter une instruction de test à l’aide de IF en fonction du résultat d’une autre instruction IF. Dans ce type d’instruction conditionnelle, vous devez tester des conditions complexes. Voyons un exemple :
Dans l’exemple ci-dessus, nous testons deux conditions, condition1 (1 + 1 = 2) et condition2 (2 + 2 = 4).
Mais comme nous sommes l’instruction IF à l’intérieur de l’instruction IF, VBA testera d’abord la première condition, puis passera à la prochaine IF.
Dans le deuxième SI, nous avons une boîte de message pour montrer si la condition est VRAIE.
Sub myMacro1()
'first if statement
If 1 + 1 = 2 Then
'second if statement
If 2 + 2 = 4 Then
MsgBox True
End If
Else
MsgBox False
End If
End Sub
Voici un exemple d’utilisation de plusieurs IF dans un IF.
Il y a une différence entre l’exemple que nous avons utilisé plus tôt et dans l’exemple ci-dessus : dans ce code, nous avons utilisé une condition imbriquée pour « Else ».
Si la première condition n’est pas vraie, VBA passera au « Else » et testera la condition, et si cette condition n’est pas vraie, alors à la suivante.
De cette façon, nous avons un total de quatre conditions à tester.
Sub myMacro2()
Dim myScore As Single: myScore = Range("A1").Value
If myScore >= 80 Then
MsgBox "Excellent"
Else
If myScore >= 60 And myScore < 80 Then
MsgBox "Good"
Else
If myScore >= 40 And myScore < 60 Then
MsgBox "Average"
Else
If myScore < 40 Then
MsgBox "Poor"
End If
End If
End If
End If
End Sub
Cette instruction IF imbriquée testera le score de la cellule A1 et affichera une boîte de message en conséquence.
IF imbriqué VBA avec plusieurs lignes (IF)
Vous pouvez également utiliser deux IF différents à exécuter pour les deux résultats (Vrai et Faux).
Dans l’exemple ci-dessus, comme vous pouvez le voir, nous avons d’abord une condition à tester, et si cette condition est VRAIE, puis vous avez une autre condition à tester, et si cette deuxième condition est VRAIE, vous obtiendrez une boîte de message.
Et si la condition principale est fausse, vous avez une autre condition à tester et vous obtiendrez une boîte de message si cette condition est vraie.
Sub myMacro3()
If 1 + 1 = 2 Then
If 2 - 1 = 1 Then
MsgBox "Condition1 is TRUE."
End If
Else
If 3 - 2 = 1 Then
MsgBox "Condition2 is TRUE."
End If
End If
End Sub