Comparaison de Chaînes de Caractères en VBA – StrComp

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on mars 12, 2023

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.

exemple fonction strcomp valeur equiv

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 :

exemple fonction strcomp comparaison methode texte binaire

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.

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA