VBA vous permet d'utiliser les opérateurs logiques Et, Ou, Pas, Xou pour comparer des valeurs. Les opérateurs sont considérés comme « booléens », ce qui signifie qu'ils renvoient True ou False en conséquence.
Si vous voulez apprendre à comparer des chaînes, cliquez ici : VBA Compare Strings - StrComp
Si vous souhaitez apprendre à utiliser les opérateurs de comparaison, cliquez ici : Opérateurs de comparaison VBA - Pas égaux à et plus
Utilisation de l'opérateur logique And
Les Et L'opérateur logique compare deux ou plusieurs conditions. Si toutes les conditions sont vraies, l'opérateur renvoie True. Si au moins une des conditions n'est pas vraie, l'opérateur renverra False. Voici un exemple:
123456789101112 | Dim intA en tant qu'entierDim intB en tant qu'entierDim blnRésultat en tant que booléenintA = 5intB = 5Si intA = 5 Et intB = 5 AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Dans cet exemple, nous voulons vérifier si les deux intA et intB sont égaux à 5. Si cela est vrai, la valeur de Boolean blnRésultat sera Vrai, sinon, ce sera Faux.
Tout d'abord, nous définissons les valeurs de intA et intB à 5:
12 | intA = 5intB = 5 |
Après cela, nous utilisons le Et opérateur dans l'instruction If pour vérifier si les valeurs sont égales à 5 :
12345 | Si intA = 5 Et intB = 5 AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Comme les deux variables sont égales à 5, le blnRésultat renvoie Vrai :
Image 1. Utilisation de l'opérateur logique Et dans VBA
Utilisation de l'opérateur logique Ou
Les Ou L'opérateur logique compare deux ou plusieurs conditions. Si au moins une des conditions est vraie, elle renverra True. Si aucune des conditions n'est vraie, l'opérateur renverra False. Voici le code de l'exemple :
123456789101112 | Dim intA en tant qu'entierDim intB en tant qu'entierDim blnRésultat en tant que booléenintA = 5intB = 10Si intA = 5 Ou intB = 5 AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Dans cet exemple, nous voulons vérifier si les deux intA est égal à 5. ou intB est égal à 10. Si l'une de ces conditions est vraie, la valeur de Boolean blnRésultat sera Vrai, sinon, ce sera Faux.
On fixe d'abord la valeur de intA à 5 et intB à 10 :
12 | intA = 5intB = 10 |
Après cela, nous utilisons le Ou dans l'instruction If pour vérifier si l'une des valeurs est égale à 5 :
12345 | Si intA = 5 Ou intB = 5 AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Comme intA la valeur est 5, le blnRésultat renvoie Vrai :
Image 2. Utilisation de l'opérateur logique Ou dans VBA
Utilisation de l'opérateur non logique
Les Pas L'opérateur logique vérifie une ou plusieurs conditions. Si les conditions sont vraies, l'opérateur renvoie False. Sinon, il renvoie True. Voici le code de l'exemple :
12345678910 | Dim intA en tant qu'entierDim blnRésultat en tant que booléenintA = 5Si Non (intA = 6) AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Dans cet exemple, nous voulons vérifier si la valeur de intA n'est pas égal à 6. Si intA est différent de 6, la valeur de booléen blnRésultat sera Vrai, sinon, ce sera Faux.
On fixe d'abord la valeur de intA à 5:
1 | intA = 5 |
Après cela, nous utilisons l'opérateur Not dans l'instruction If pour vérifier si la valeur de intA est différente de 6 :
12345 | Si Non (intA = 6) AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Comme intA la valeur est 5, le blnRésultat renvoie Vrai :
Image 3. Utilisation de l'opérateur Non logique dans VBA
Utilisation de l'opérateur logique Xor
Les Xou L'opérateur logique compare deux ou plusieurs conditions. Si exactement l'une des conditions est vraie, elle renverra True. Si aucune des conditions n'est vraie, ou si plusieurs sont vraies, elle renverra False. Voici le code de l'exemple :
123456789101112 | Dim intA en tant qu'entierDim intB en tant qu'entierDim blnRésultat en tant que booléenintA = 5intB = 10Si intA = 5 Xou intB = 5 AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Dans cet exemple, nous voulons vérifier si exactement une des valeurs (intA ou IntB) est égale à 5. Si une seule condition est vraie, la valeur de Boolean blnRésultat sera Vrai, sinon, ce sera Faux.
On fixe d'abord la valeur de intA à 5 et intB à 10 :
12 | intA = 5intB = 10 |
Après cela, nous utilisons le Ou dans l'instruction If pour vérifier si l'une des valeurs est égale à 5 :
12345 | Si intA = 5 Xou intB = 5 AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Comme intA la valeur est 5 et intB est 10, le blnRésultat renvoie Vrai :
Image 4. Utilisation de l'opérateur logique Xor dans VBA
est opérateur
L'opérateur Is teste si deux variables d'objet stockent le même objet.
Regardons un exemple. Ici, nous allons affecter deux feuilles de calcul aux objets de feuille de calcul rng1 et rng2, en testant si les deux objets de feuille de calcul stockent la même feuille de calcul :
12345678910111213 | Sous-ComparerObjets()Dim ws1 en tant que feuille de calcul, ws2 en tant que feuille de calculDéfinir ws1 = Sheets("Sheet1")Définir ws2 = Sheets("Sheet2")Si ws1 est ws2 alorsMsgBox "Même WS"AutreMsgBox "Différents WS"Fin siFin du sous-marin |
Bien sûr, les objets de la feuille de calcul ne sont pas les mêmes, donc « Différents WS » est renvoyé.
Comme opérateur
L'opérateur Like peut comparer deux chaînes pour des correspondances inexactes. Cet exemple testera si une chaîne commence par « Mr ».
1234567891011121314 | Sous LikeDemo()Dim strName en tant que chaîneDim blnRésultat en tant que booléenstrName = "M. Michael James"Si strName comme "Mr*" AlorsblnRésultat = VraiAutreblnRésultat = FauxFin siFin du sous-marin |