Excel VBA InStr

Fonction InStr VBA Excel

Retourne un nombre entier indiquant la position d'une valeur dans une chaîne de caractères.

5
(11)

La fonction InStr VBA, abréviation de "Instruction String", est un outil puissant et flexible dans Visual Basic for Applications (VBA), essentiel pour tout développeur qui manipule des textes.

Cette fonction est conçue pour rechercher la position d'une sous-chaîne spécifique à l'intérieur d'une chaîne principale, offrant une précision cruciale dans le traitement et l'analyse des données textuelles.

Que vous ayez besoin de localiser un fragment de texte pour la validation des entrées, le filtrage de données ou même l'automatisation des tâches répétitives, InStr devient une ressource incontournable.

Cet article explore la syntaxe, les usages variés, et les options de comparaison de cette fonction, fournissant ainsi les clés pour maîtriser ses capacités et l'intégrer efficacement dans vos scripts VBA.

Options de module

La fonction Instr() appartient à la suite de ce que l’on appelle les fonctions de chaîne. On ne peut pas aborder les fonctions de chaîne sans faire un petit rappel sur les options de module.

Lorsque l’on développe en VBA, on préconisera de développer dans un module en Option Explicite. L’option Explicite force le programmeur à déclarer explicitement toutes les variables avant de les utiliser dans le code. L’option Explicite offre également l’avantage de l’aide dynamique que l’on peut obtenir avec la combinaison des touches Ctrl [Espace].

Pour ce qui du développement de procédure ou de code traitant des chaînes de caractères, il faut savoir qu’un module VBA est par défaut en Option Compare Binary.

Tous les caractères alpha seront comparés par rapport à leur valeur numérique ou code ASCII (American Standard Code for Information Interchange). Les lettres majuscules seront différentes des lettres minuscules, ce que l’on appelle la casse.

Un module peut être également défini avec l’Option Compare Text : Lorsque vous utilisez Option Compare Text dans un module VBA, toutes les comparaisons de chaînes de caractères dans ce module deviennent insensibles à la casse. Cela signifie que les caractères majuscules et minuscules sont considérés comme équivalents lors de la comparaison. Il est bien entendu que les caractères accentués seront différents des caractères non accentués.

Remarque : On ne parlera pas dans cet article de l’option Compare DataBase principalement utilisée dans l’application Access.

La fonction Excel VBA Instr()

La fonction Instr() est une fonction intégrée dans VBA qui permet de rechercher la position d'une sous-chaîne dans une chaîne principale.

Elle est très utile pour les manipulations de texte où vous avez besoin de localiser la présence de certains caractères ou sous-chaînes au sein d'une chaîne plus grande.

Syntaxe de Instr() Excel VBA

La syntaxe de la fonction Instr() est structurée comme suit :

Start (Facultatif): C'est un argument numérique de type entier qui spécifie la position de départ, en nombre de caractères, dans la chaîne de caractères à parcourir. Cet argument étant facultatif, il prendra la valeur de 1 par défaut, indiquant que la recherche débutera à partir du premier caractère de la chaîne.

  • Chaîne principale : Désigne la chaîne de caractères à parcourir.
  • Sous-chaîne : Désigne la chaîne de caractères à rechercher.

Compare (Facultatif): C'est un argument numérique qui spécifie le type de comparaison à effectuer. Les valeurs possibles sont :

  • vbBinaryCompare (0) : Comparaison binaire qui respecte la casse.
  • vbTextCompare (1) : Comparaison textuelle qui ignore la casse.
  • vbDatabaseCompare (2) : Comparaison basée sur votre base de données locale.

Quel est mon niveau sur VBA Excel ?

Testez gratuitement votre niveau avec notre Quiz VBA Excel ( 7min)

Exemples d’utilisation de Instr() Excel VBA

Dans cette partie, vous allez trouver 4 exemples uniques sur la fonction Instr().

Exemple 1 : Recherche simple

Dans cet exemple, Instr() recherche la sous-chaîne "monde" dans la chaîne "Bonjour le monde". La recherche débute à la première position et retourne 12, indiquant que "monde" commence à la position 12.

Exemple1 _fonctionINSTRVBA

La fonction Debug.Print permet de visualiser la valeur de la position dans la fenêtre d’exécution de la console VBA.

Code de l'exemple à copier :

Exemple 2 : Utilisation de l’argument start

Dans cet exemple, la recherche du caractère "e" commence à la position 4 dans la chaîne "Exemple exemple". La première occurrence de "e" après cette position est trouvée à la position 7.

Exemple2_FonctionInstrVBA

Code de l'exemple à copier :

Exemple 3 : comparaison insensible à la casse

Cet exemple montre comment utiliser l'argument compare pour effectuer une recherche qui ignore la casse. Bien que "Monde" dans la chaîne principale soit écrit avec une majuscule initiale, la fonction trouve la correspondance à la position 12, car elle ne tient pas compte de la casse.

Exemple3_FonctionINSTR

Code de l'exemple à copier :

Exemple 4 : vérification de la présence d’un mot dans une chaîne

Ces exemples démontrent la flexibilité et l'utilité de la fonction Instr()Excel VBA pour les manipulations de chaînes de caractères dans des scripts VBA, facilitant des opérations complexes de recherche et de comparaison de texte.

Exemple4_FonctionInstr

Code de l'exemple à copier :

Note : Le caractère & permet la concaténation de chaînes de caractères et de variables dans une ligne de code. Un espace suivi d'un underscore (tiret du 8) permet de continuer un bloc sur une seconde ligne. Le code vbCrLf (Carriage Return Line Feed) permet d’afficher un message avec un retour à la ligne dans un Message Box.

🎁 Formation Excel VBA gratuite

Conseils pratiques pour utiliser la fonction InStr() Excel VBA

  1. Vérification de l’existence : Avant de commencer à travailler avec le résultat de InStr(), assurez-vous que la valeur retournée est supérieure à zéro. Une valeur de zéro signifie que la sous-chaîne n'a pas été trouvée dans la chaîne principale. Cette vérification préliminaire vous évite d'exécuter des manipulations inutiles sur des résultats non valides.
  2. Gestion des positions de départ : Lorsque vous utilisez l'argument Start, soyez conscient de sa position dans la chaîne. Il est utile pour sauter les premiers caractères que vous savez ne pas être pertinents pour votre recherche, mais une mauvaise utilisation peut vous faire manquer des occurrences importantes.
  3. Utilisation des comparaisons : Choisissez judicieusement entre vbBinaryCompare et vbTextCompare en fonction de votre besoin de sensibilité à la casse. Si la distinction entre majuscules et minuscules est cruciale, optez pour vbBinaryCompare. Pour une recherche insensible à la casse, utilisez vbTextCompare, particulièrement utile lorsque vous traitez des données textuelles dont la normalisation de la casse n'est pas garantie.
  4. Optimisation des performances : Bien qu'InStr() soit efficace, son utilisation répétée dans de grandes boucles ou sur de grandes chaînes de caractères peut être coûteuse en termes de performance. Envisagez de réduire la taille de la chaîne ou d'utiliser des techniques telles que le pré-traitement des données pour minimiser le coût de l'opération.
  5. Prévention des erreurs avec des arguments optionnels : Assurez-vous que les arguments facultatifs que vous passez à InStr() sont correctement utilisés. Des valeurs incorrectes ou inattendues pour ces arguments peuvent conduire à des comportements inattendus ou des erreurs subtiles.

Pour aller plus loin

La fonction InStr()Excel VBA est un outil puissant et indispensable pour la manipulation de chaînes de caractères dans VBA.

Elle évite le développement de boucles itératives sur chaque caractère d'une chaîne principale pour rechercher une sous-chaîne.

Grâce à sa capacité à rechercher des sous-chaînes à partir d'une position spécifiée et avec différentes sensibilités à la casse, elle se révèle essentielle pour le traitement avancé de texte dans les applications VBA.

Familiarisez-vous avec ses divers usages pour tirer pleinement parti de ses capacités dans vos scripts VBA, et exploitez sa flexibilité pour simplifier et accélérer vos opérations de manipulation de texte.

Formation VBA Excel : découvrez les macros et automatiser vos fichiers

Vous souhaitez réellement maîtriser VBA et automatiser vos fichiers Excel ? Notre formation complète vous accompagne avec un formateur expert dédié, des exercices personnalisés et un programme construit selon votre niveau. Vous bénéficiez de :

  • Séances individuelles avec un formateur VBA expérimenté
  • Exercices sur mesure selon vos fichiers et votre métier
  • Progression claire du niveau débutant à avancé
  • Accompagnement humain tout au long du parcours
  • Certification TOSA VBA possible en fin de formation
  • Financement CPF, OPCO ou entreprise selon votre situation

Plus de 850 apprenants ont déjà été formés avec une satisfaction de 9,7/10.

Les autres fonctions VBA TEXTE

FAQ : Excel VBA InStr

Ces questions fréquemment posées visent à clarifier l'utilisation et les capacités de la fonction InStr() pour les utilisateurs de VBA, offrant des explications sur son fonctionnement et ses applications typiques.

Si cet article vous a plu, partagez-le avec votre équipe ou laissez-nous un commentaire ! 💚

Clique sur l'étoile pour l'évaluer !

Note moyenne 5 / 5. Nombre de votes : 11

Aucun vote jusqu'à présent ! Tu peux être le premier à évaluer cet article.

Gilles CHARRAULT

Gilles CHARRAULT

Fort d'une expérience de cadre dans l'industrie, reconverti en expert Excel VBA, je propose une
Formation Excel VBA
personnalisée et des solutions de développement sur mesure en programmation VBA. Créateur de l'outil XLOneClick, je suis spécialisé dans l'automatisation de processus et la gestion de données via Excel pour optimiser la productivité des entreprises.

Articles: 12
🎁 Félicitations ! Votre ebook Excel offert !
EXERCICES | FICHES | EXEMPLES
Votre ebook Excel offert !
Félicitations !
Vous souhaitez progresser rapidement et exploiter le plein potentiel d'Excel ?
Choisissez votre
formation Excel !
Quel est votre niveau sur Excel ?
Seulement 7 % des 8 000 personnes ont atteint un niveau avancé.
Testez vos connaissances sur Excel pour vous situer par rapport aux autres utilisateurs et découvrez nos ressources exclusives adaptées à votre niveau.
*et recevez votre certificat à la fin !
Sky Rocket Your Agency Income
Get Our Free Guide to
299 vidéos Excel rien que pour vous 😁
Tout ce qu’il faut pour progresser gratuitement sur Excel !
  • Une publication par semaine (minimum !)
  • Vos commentaires ? On les lit tous (promis)
  • Nos vidéos partent des vrais problèmes rencontrés 
C’est gratuit. C’est utile. C’est pour vous.
Excel vous fait perdre du temps ? Demandez un AUDIT gratuit
  • Identifier ce qui vous ralentit dans vos fichiers
  • Voir ce qui peut être automatisé ou fiabilisé
  • Comprendre comment faire évoluer votre façon de travailler
  • Découvrir le format de formation le plus efficace pour vous
  • Repartir avec une vision claire (même sans formation)
100 % gratuit • Sans engagement • 15 minutes Réservé aux professionnels basés en France
NICOLAS PARENT - Formateur Excel -
Expliquez-nous comment vous travaillez sur Excel. On vous montre quoi améliorer. En 15 minutes avec un expert, vous allez pouvoir :
LES 25 FONCTIONS EXCEL LES PLUS UTILISÉES !
E-book Excel offert