Empêcher la casse VBA - Option Comparer le texte

Lorsque vous travaillez en VBA, vous devez souvent comparer des chaînes. Par défaut, VBA est sensible à la casse, donc si vous comparez deux mêmes textes et que l'un d'eux est en majuscule et l'autre en minuscule, VBA les considérera comme des textes différents. Dans ce didacticiel, vous verrez comment empêcher VBA d'être sensible à la casse.

Rendre VBA insensible à la casse

Afin de rendre VBA insensible à la casse, vous devez mettre Option Comparer le texte au début du module. Tout d'abord, nous examinerons le comportement standard de VBA sans ce jeu d'options. C'est le code :

123456789 If Sheet1.Range("A1").Value = Sheet1.Range("B1").Value ThenMsgBox "Deux textes sont identiques"AutreMsgBox "Deux textes sont différents"Fin si

Dans l'exemple, nous voulons comparer les chaînes de A1 et B1. Si les chaînes sont égales, nous renverrons la boîte de message avec le message « Deux textes sont identiques ». S'ils ne sont pas égaux, nous renverrons le message « Deux textes sont différents.

Image 1. Comparaison des chaînes sans l'option Comparer le texte

Comme vous pouvez le voir sur l'image, les deux textes sont identiques, mais le premier est en majuscule, tandis que le second est en minuscule. Pour cette raison, VBA les considère différents et a renvoyé ce message.

1234567891011 Option Comparer le textePublic Sub CaseSensitiveTest()If Sheet1.Range("A1").Value = Sheet1.Range("B1").Value ThenMsgBox "Deux textes sont identiques"AutreMsgBox "Deux textes sont différents"Fin siFin du sous-marin

Maintenant, nous allons ajouter Option Compare Text au début du module et voir la différence. Voici le code. Nous exécutons le code sur le même exemple :

Image 2. Comparaison des chaînes avec l'option Comparer le texte

Désormais, lorsque l'option Comparer le texte est définie, le VBA devient insensible à la casse et considère ces deux textes de la même manière.

Comparer du texte

Si vous ne déclarez pas Option Comparer le texte, vous pouvez convertir la casse des chaînes afin d'effectuer des comparaisons insensibles à la casse. Ceci est possible par la fonction UCase, LCase ou StrConv. Vous pouvez en savoir plus à ce sujet ici: VBA Upper, Lower et Proper Case - Fonctions de la casse

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave