![](https://codky.com/wp-content/uploads/2024/11/2679-1024x576.png)
La fonction `StrComp` en VBA est utilisée pour comparer deux chaînes de caractères. Elle peut déterminer si une chaîne est égale à, supérieure à, ou inférieure à une autre, en fonction des valeurs ASCII des caractères ou selon une comparaison de texte. Voici comment l’utiliser :
Syntaxe
StrComp(string1, string2, [compare])
Paramètres
- string1 : La première chaîne de caractères à comparer.
- string2 : La deuxième chaîne de caractères à comparer.
- compare : (Optionnel) Un argument qui détermine le type de comparaison. Il peut prendre les valeurs suivantes :
- `vbBinaryCompare` : Effectue une comparaison binaire (sensible à la casse). C’est la valeur par défaut.
- `vbTextCompare` : Effectue une comparaison textuelle (insensible à la casse).
Valeurs de retour
La fonction renvoie un type de données `Variant (Integer)` avec les valeurs suivantes :
- `-1`: `string1` est inférieure à `string2`.
- `0`: `string1` est égale à `string2`.
- `1`: `string1` est supérieure à `string2`.
- `Null`: Si l’un des paramètres `string1` ou `string2` est `Null`.
Exemple d’utilisation
Voici un exemple de code pour utiliser `StrComp` dans une macro VBA :
Sub ComparerChains()
Dim result As Integer
Dim chaine1 As String
Dim chaine2 As String
chaine1 = "Bonjour"
chaine2 = "bonjour"
' Comparaison binaire (sensible à la casse)
result = StrComp(chaine1, chaine2, vbBinaryCompare)
Select Case result
Case -1
MsgBox "chaine1 est inférieure à chaine2."
Case 0
MsgBox "chaine1 est égale à chaine2."
Case 1
MsgBox "chaine1 est supérieure à chaine2."
End Select
' Comparaison textuelle (insensible à la casse)
result = StrComp(chaine1, chaine2, vbTextCompare)
Select Case result
Case -1
MsgBox "chaine1 est inférieure à chaine2 (insensible à la casse)."
Case 0
MsgBox "chaine1 est égale à chaine2 (insensible à la casse)."
Case 1
MsgBox "chaine1 est supérieure à chaine2 (insensible à la casse)."
End Select
End Sub
Dans cet exemple, vous avez deux comparaisons : l’une sensible à la casse et l’autre non. Cela vous permet de comprendre comment `StrComp` peut être utilisé selon vos besoins en termes de comparaison de chaînes.