Comparaison de Chaînes de Caractères en VBA – StrComp
In this Article
En VBA, vous pouvez comparer deux chaînes de caractères à l’aide de la fonction StrComp. Dans ce tutoriel, vous apprendrez à utiliser cette fonction avec différentes méthodes de comparaison.
Si vous souhaitez apprendre à utiliser l’opérateur VBA like pour comparer des correspondances inexactes, cliquez ici : Opérateur VBA Like.
Si vous souhaitez apprendre à utiliser les opérateurs de comparaison, cliquez ici : Opérateurs de comparaison VBA – Pas Égal à et Autres
Utilisation de la Fonction StrComp pour Comparer deux Chaînes de Caractères
La fonction StrComp prend comme arguments deux chaînes de caractères et une méthode de comparaison. Il existe trois méthodes de comparaison :
- vbBinaryCompare – compare deux chaînes en mode binaire (sensible à la casse) ;
- vbTextCompare – compare deux chaînes en tant que textes (insensible à la casse) ;
- vbDatabaseCompare – cette méthode n’est disponible que dans Microsoft Access et non dans VBA sur Excel.
Par défaut, la fonction utilise la méthode binaire. Si nous omettons cet argument, la fonction sera sensible à la casse.
La fonction renvoie les résultats suivants :
- 0 – si les chaînes sont égales ;
- -1 – si la chaîne 1 est inférieure à la chaîne 2 ;
- 1 – si la chaîne 1 est supérieure à la chaîne 2 ;
- Null – si l’une des chaînes est vide.
Voici un exemple de code :
Dim intResultat As Integer
intResultat = StrComp("Ordinateur", "Ordinateur")
Dans cet exemple, nous voulons vérifier si les chaînes « Ordinateur » et « Ordinateur » sont égales, en utilisant la méthode de comparaison par défaut (binaire). Le résultat de la fonction se trouve dans la variable intResultat. Comme vous pouvez le voir dans l’image, les deux chaînes sont égales, et la variable intResultat prend donc la valeur 0.
Image 1. Utilisation de la fonction StrComp avec la méthode binaire en VBA
Utilisation de la Fonction StrComp avec la Méthode Binaire et la Méthode Textuelle
Vous allez maintenant voir la différence entre la méthode binaire et la méthode textuelle. La méthode binaire comporte un nombre binaire pour chaque caractère, de sorte que les majuscules et les minuscules sont des caractères différents dans cette méthode. En revanche, la méthode textuelle considère « S » et « s » comme les mêmes lettres. Si vous souhaitez que la fonction ne tienne pas compte des majuscules et des minuscules, vous devez définir le troisième argument à vbTextCompare. Voici le code :
Dim intResultat1 As Integer
Dim intResultat2 As Integer
intResultat1 = StrComp("Ordinateur", "OrdinaTeur")
intResultat2 = StrComp("Ordinateur", "OrdinaTeur", vbTextCompare)
Nous voulons comparer les chaînes « Ordinateur » et « OrdinaTeur », en utilisant les deux méthodes.
Dans la variable intResultat1, nous obtiendrons la valeur avec la méthode binaire, tandis que la variable intResultat2 obtiendra la valeur avec la méthode textuelle. Vous pouvez voir les valeurs de ces deux variables :
Image 2. Utilisation de la fonction StrComp avec une méthode binaire et textuelle
La valeur de intResultat1 est 1, ce qui signifie que deux chaînes sont différentes pour la méthode binaire. Pour la méthode textuelle, ces deux chaînes sont égales, la valeur de intResultat2 est donc 0.