VBA : utilisez IF AND pour tester plusieurs conditions



Vous pouvez utiliser la syntaxe de base suivante dans VBA avec IF et AND pour tester si plusieurs conditions sont remplies :

Sub IfAnd()
    If Range("A2") = "Warriors" And Range("B2") > 100 Then
    Range("C2").Value = "Yes!"
    Else
    Range("C2").Value = "No."
    End If
End Sub

Cet exemple particulier vérifie si la valeur dans la cellule A2 est égale à « Guerriers » et si la valeur dans la cellule B2 est supérieure à 100.

Si les deux conditions sont remplies, la valeur « Oui ! » est renvoyé dans la cellule C2 .

Sinon, la valeur « Non ». est renvoyé dans la cellule C2 .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : utilisez IF AND pour tester plusieurs conditions dans VBA

Supposons que nous ayons les données suivantes dans Excel :

Supposons que nous souhaitions déterminer si le nom de l’équipe est Warriors et si la valeur des points est supérieure à 100 et renvoyer le résultat dans la cellule C2 .

Nous pouvons créer la macro suivante pour ce faire :

Sub IfAnd()
    If Range("A2") = "Warriors" And Range("B2") > 100 Then
    Range("C2").Value = "Yes!"
    Else
    Range("C2").Value = "No."
    End If
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

La macro renvoie correctement la valeur « Non ». dans la cellule C2 puisque les deux conditions n’étaient pas remplies.

Si nous modifions la valeur des points dans la cellule B2 puis exécutons à nouveau la macro, elle testera si les deux conditions sont remplies pour les nouvelles valeurs :

Par exemple, supposons que nous modifiions la valeur des points en 104 et que nous exécutions à nouveau la macro :

La macro renvoie correctement la valeur « Oui ! » dans la cellule C2 puisque les deux conditions étaient remplies.

Si vous souhaitez plutôt afficher les résultats dans une boîte de message, vous pouvez utiliser la syntaxe suivante :

Sub IfAnd()
    If Range("A2") = "Warriors" And Range("B2") > 100 Then
    MsgBox "Yes!"
    Else
    MsgBox "No."
    End If
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

La boîte de message renvoie « Oui ! » puisque le nom de l’équipe est Warriors et que la valeur des points est supérieure à 100.

Remarque : Dans cet exemple, nous n’avons utilisé l’opérateur Et qu’une seule fois dans notre macro pour tester si deux conditions étaient remplies, mais vous pouvez utiliser autant d’opérateurs Et que vous le souhaitez pour tester si plus de deux conditions sont remplies.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : comment utiliser RECHERCHEV
VBA : Comment compter les occurrences de caractères dans une chaîne
VBA : comment vérifier si une chaîne contient une autre chaîne

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *