
La fonction `InStr` en VBA est utilisée pour rechercher la position d’une sous-chaîne au sein d’une autre chaîne. Elle renvoie l’index de la première occurrence de la sous-chaîne. Si la sous-chaîne n’est pas trouvée, elle retourne zéro. Voici comment l’utiliser :
Syntaxe
InStr([start], string1, string2, [compare])
- start (facultatif) : Position de départ de la recherche. Par défaut, elle est 1.
- string1 : Chaîne dans laquelle vous voulez rechercher.
- string2 : Sous-chaîne à rechercher.
- compare (facultatif) : Type de comparaison. Vous pouvez utiliser :
- `vbBinaryCompare` (par défaut) : Comparaison binaire, sensible à la casse.
- `vbTextCompare` : Comparaison textuelle, insensible à la casse.
- `vbDatabaseCompare` : Disponible uniquement dans les bases de données Microsoft Access.
Exemple simple
Voici un exemple simple montrant comment utiliser `InStr` :
Sub ExampleInStr()
Dim position As Integer
Dim mainString As String
Dim searchString As String
mainString = "Bonjour tout le monde"
searchString = "tout"
' Rechercher "tout" dans "Bonjour tout le monde"
position = InStr(1, mainString, searchString, vbTextCompare)
If position > 0 Then
MsgBox "La sous-chaîne a été trouvée à la position " & position
Else
MsgBox "La sous-chaîne n'a pas été trouvée."
End If
End Sub
Détails supplémentaires
- Si vous omettez l’argument `start`, la recherche commence au début de la chaîne (`start` = 1).
- Le choix du type de comparaison (`compare`) est crucial si vous voulez que la recherche soit ou non sensible à la casse.
- Quand `InStr` retourne zéro, cela signifie que la sous-chaîne n’a pas été trouvée.
Cette fonction est très utile pour analyser et manipuler des chaînes dans VBA.