Comparaison VBA Operators : Pas égal, Less supérieur ou égal à
⚡ Résumé intelligent
Comparaison VBA OperaLes opérateurs comparent deux valeurs et renvoient Vrai ou Faux. Cette page définit les six opérateurs, les illustre dans une instruction If, explique comment comparer du texte et des dates, et liste les erreurs qui produisent des résultats incorrects.

Comparaison VBA Operajeudi
Ce sont des opérateurs utilisés pour comparer des valeurs. Les opérateurs de comparaison incluent égal à, inférieur à, supérieur à et différent de.
Les opérateurs de comparaison servent à comparer des valeurs à des fins de validation. Supposons que vous soyez développeur…ping Il s'agit d'une application de point de vente simple. Dans cette application, vous souhaitez valider les valeurs saisies avant leur enregistrement. Pour ce faire, vous pouvez utiliser des opérateurs de comparaison. Ces opérateurs vérifient la présence de nombres négatifs ou s'assurent que le montant payé ne dépasse pas le montant facturé. Les opérateurs de comparaison sont très utiles dans ce genre de situations.
Chaque comparaison renvoie l'une des deux valeurs, Vrai ou Faux, et jamais un nombre. C'est sur ce résultat que porte l'instruction If.
Le tableau suivant répertorie les opérateurs de comparaison définis dans VBA.
| Opérateur | Description |
|---|---|
| = | Égal : vérifie si deux valeurs sont égales. Il est également utilisé comme opérateur d'affectation |
| < | Less than : vérifie si la valeur de gauche est inférieure à la valeur de droite |
| > | Supérieur à : vérifie si la valeur de gauche est supérieure à la valeur de droite |
| <> | Différent de : vérifie si deux valeurs sont différentes l'une de l'autre |
| <= | Less « inférieur ou égal à » : vérifie si la valeur de gauche est inférieure ou égale à la valeur de droite. |
| >= | Supérieur ou égal à : vérifie si la valeur de gauche est supérieure ou égale à la valeur de droite. |
L'application de chaque opérateur à deux variables permet de mieux prédire le résultat obtenu.
Comparaison VBA Operators avec exemple
Le tableau suivant montre la comparaison Excel VBA Operators avec des exemples et des résultats.
| Ratio S / N | Opérateur | Exemple | Sortie |
|---|---|---|---|
| 1 | = | Si x = z Alors | Renvoie vrai s'ils sont égaux, sinon renvoie faux |
| 2 | < | Si x < z Alors | Renvoie vrai si x est inférieur à z, sinon il renvoie faux |
| 3 | > | Si x > z Alors | Renvoie vrai si x est supérieur à z, sinon il renvoie faux |
| 4 | <> | Si x <> z Alors | Renvoie vrai s'ils ne sont pas égaux, sinon renvoie faux |
| 5 | <= | Si x <= z Alors | Renvoie vrai si x est inférieur ou égal à z, sinon il renvoie faux |
| 6 | >= | Si x >= z Alors | Renvoie vrai si x est supérieur ou égal à z, sinon il renvoie faux |
Exemple de code source
Comparaison égale Operator
If 2 = 1 Then MsgBox "True", vbOKOnly, "Equal Operator" Else MsgBox "False", vbOKOnly, "Equal Operator" End If
ICI,
- « Si 2 = 1 Alors… Sinon… Finir si » utilise l'instruction if pour évaluer la condition « 2 = 1 »
- "MessageBox... " Est une fonction intégrée qui affiche une boîte de message.
- Le premier paramètre « Vrai » ou « Faux » est ce qui sera affiché dans la boîte de message. Dans notre exemple, 2 n'est pas égal à 1, par conséquent, il affichera « faux » dans la zone de message.
- Le deuxième paramètre « vbOKOnly » est le bouton qui s'affiche dans la boîte de message
- Le troisième paramètre « Égal Opera« tor » est le titre de la boîte de message.
L'exécution du code ci-dessus donne les résultats suivants
Ce test unique est la forme la plus simple. Les macros réelles combinent des comparaisons et proposent des branchements entre plusieurs résultats.
Comment utiliser la comparaison Operators dans une instruction If
Un opérateur de comparaison est rarement utile seul. Son résultat (Vrai ou Faux) est transmis à une structure de décision, et c'est l'instruction SI que vous utiliserez le plus souvent. L'exemple ci-dessous évalue une note contenue dans la cellule A1 et affiche le résultat à côté.
Sub GradeScore() Dim Score As Long Score = Sheet1.Range("A1").Value If Score >= 90 Then Sheet1.Range("B1").Value = "Distinction" ElseIf Score >= 50 Then Sheet1.Range("B1").Value = "Pass" ElseIf Score < 0 Then MsgBox "A score cannot be negative", vbCritical, "Invalid Entry" Else Sheet1.Range("B1").Value = "Fail" End If End Sub
La macro lit le score une première fois, puis le teste successivement selon trois conditions. Quatre points expliquent son comportement.
- L'ordre compte : VBA s'arrête à la première branche qui renvoie True. Placement Score >= 50 avant Score >= 90 systématiquement, toute note élevée serait considérée comme une réussite.
- Sinon, c'est le fourre-tout : Toute valeur qui échoue à tous les tests précédents est transmise à la clause Else, de sorte qu'aucune entrée n'est laissée sans traitement.
- Pas de chaînage : VBA ne peut pas lire 0 <= Score <= 100. Écrire Si le score est supérieur ou égal à 0 et inférieur ou égal à 100, alors en utilisant la fonction Opérateurs logiques à la place.
- Même test, autres structures : La même condition régit les boucles Do While et Select Case, de sorte que les opérateurs s'appliquent à toutes les boucles que vous écrivez.
Astuce : Déclarez la variable avec un type numérique, comme indiqué avec Score de dim aussi longtempsSi la valeur reste une variante contenant du texte, « 9 » > « 10 » Renvoie True car la comparaison est effectuée caractère par caractère.
Comparaison de texte et de dates en VBA
Numbers La comparaison est conforme aux règles arithmétiques, mais le texte et les dates obéissent à leurs propres règles, ce qui surprend souvent les débutants.
Les chaînes de caractères sont comparées caractère par caractère en fonction de leur position de tri ; ainsi, « Apple » < « Banana » renvoie True. Par défaut, la comparaison est sensible à la casse, ce qui signifie que « guru99 » = « Guru99” renvoie Faux. Placement Option Comparer le texte L'instruction `strcomp` en haut du module permet d'ignorer la casse lors de toutes les comparaisons de chaînes de caractères effectuées dans ce module. Pour un test unique sans modifier le module, utilisez `strComp` avec l'argument `vbTextCompare`.
Les dates sont stockées sous forme de numéros de série comptés à partir du 30 décembre 1899, elles sont donc directement comparables aux six mêmes opérateurs. Si la date d'échéance est inférieure à la date, alors La fonction Date détecte correctement les éléments en retard, car elle renvoie la date système actuelle sous forme de numéro de série. Le seul piège concerne les dates au format texte : « 01/02/2026 », lu depuis un fichier importé, est une chaîne de caractères et non une date. La comparaison se fait donc par ordre alphabétique. Il est recommandé de la convertir avec CDate avant de la tester.
Connaître les règles de chaque type permet d'éviter la plupart des surprises, mais quelques erreurs peuvent tout de même piéger des développeurs expérimentés.
Erreurs courantes lors de la comparaison de valeurs en VBA
Les cinq problèmes ci-dessous expliquent la plupart des comparaisons qui donnent un résultat inattendu.
- Devoir pris pour comparaison : En dehors d'une condition, x = 5 La valeur 5 est stockée dans x. À l'intérieur de la condition if, les mêmes symboles testent l'égalité. VBA ne possède pas d'opérateur == distinct ; il est donc important de bien lire le contexte.
- Tests Double valeurs pour une égalité exacte : La précision stockée signifie que 0.1 + 0.2 = 0.3 renvoie False. Comparez plutôt la différence arrondie, par exemple : Si Abs(a – b) < 0.000001 Alors.
- Comparer quoi que ce soit à Null : La valeur nulle n'est égale à rien, pas même à une autre valeur nulle. Utilisez plutôt la fonction IsNull. = Nul.
- Comparer un texte à un nombre : Une cellule contenant le texte « 100 » n’est pas égale au nombre 100. Convertissez-la avec CLng ou CDbl avant le test.
- Lecture de .Texte au lieu de .Valeur : La propriété .Text renvoie le texte affiché, tronqué par la largeur de la colonne et la mise en forme. Comparez toujours avec .Value.
Téléchargez le fichier Excel ci-dessus. Code

