Fonction Instr simple | Position de départ | Zéro | Instr et Si | Recherche insensible à la casse
Utilisation Instr dans Excel VBA pour trouver la position d'une sous-chaîne dans une chaîne. La fonction Instr est assez polyvalente.
Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code ci-dessous. Pour exécuter les lignes de code, cliquez sur le bouton de commande sur la feuille.
Fonction Instr simple
Par défaut, la fonction Instr commence la recherche au début de la chaîne (position 1).
Code:
État faible en tant que chaîne
état = "Virginie"
MsgBox InStr(état, "gin")
Résultat:
Remarque : chaîne "gin" trouvée à la position 4.
La position de départ
La deuxième fonction Instr ci-dessous commence la recherche à la position 7.
Code:
État faible en tant que chaîne
état = "Caroline du Sud"
MsgBox InStr(état, "o")
MsgBox InStr(7, état, "o")
Résultat:
Explication : la première fonction Instr trouve la chaîne "o" à la position 2. La deuxième fonction Instr commence la recherche à la position 7 et trouve la chaîne "o" à la position 10.
Zéro
La fonction Instr renvoie 0 si la chaîne n'est pas trouvée (important comme nous le verrons par la suite).
Code:
État faible en tant que chaîne
état = "Floride"
MsgBox InStr(état, "nous")
Résultat:
Conclusion : chaîne "nous" introuvable.
Instr et Si
Créons un programme VBA simple qui utilise le Instr fonction.
Code:
État faible en tant que chaîne, sous-chaîne en tant que chaîne
état = Plage("A2").Valeur
sous-chaîne = Plage("B2").Valeur
Si InStr(état, sous-chaîne) > 0 Alors
Plage("C2").Valeur = "Trouvé"
Autre
Plage("C2").Valeur = "Introuvable"
Fin si
Résultat lorsque vous cliquez sur le bouton de commande sur la feuille :
Explication : chaîne "outh" trouvée à la position 2. La fonction Instr renvoie 2. Par conséquent, Excel VBA place la chaîne "Found" dans la cellule C2.
Recherche insensible à la casse
Par défaut, la fonction Instr effectue une recherche sensible à la casse. Entrez la chaîne "dakota" dans la cellule B2 et cliquez sur le bouton de commande sur la feuille.
Explication : chaîne "dakota" introuvable (première lettre sans majuscule). La fonction Instr renvoie 0. Par conséquent, Excel VBA place la chaîne « Not Found » dans la cellule C2.
Pour effectuer une recherche insensible à la casse, mettez à jour le code comme suit :
État faible en tant que chaîne, sous-chaîne en tant que chaîne
état = Plage("A2").Valeur
sous-chaîne = Plage("B2").Valeur
Si InStr(1, état, sous-chaîne, vbTextCompare) > 0 Alors
Plage("C2").Valeur = "Trouvé"
Autre
Plage("C2").Valeur = "Introuvable"
Fin si
Résultat lorsque vous cliquez sur le bouton de commande sur la feuille :
Explication : la fonction Instr présentée ci-dessus a 4 arguments. Pour effectuer une recherche insensible à la casse, spécifiez toujours une position de départ (premier argument) et utilisez vbTextCompare (quatrième argument).