Comment faire une recherche de texte dans une colonne Excel

# Comment faire une recherche de texte dans une colonne Excel

La gestion de grandes quantités de données dans Excel nécessite des techniques de recherche efficaces pour localiser rapidement des informations spécifiques. Que vous travailliez avec des listes de clients, des inventaires de produits ou des bases de données complexes, savoir comment identifier du texte dans une colonne Excel devient une compétence essentielle. Les méthodes de recherche varient selon vos besoins : recherche exacte, partielle, sensible à la casse ou non, et chaque situation requiert une approche différente. Avec l’évolution des versions d’Excel, notamment Microsoft 365, de nouvelles fonctions puissantes ont enrichi les possibilités de recherche textuelle, permettant des analyses plus précises et une automatisation accrue des tâches répétitives.

Fonction RECHERCHEV pour identifier du texte dans une colonne excel

La fonction RECHERCHEV représente l’une des techniques les plus utilisées pour localiser des informations dans un tableau Excel. Cette fonction permet de rechercher une valeur dans la première colonne d’une plage de données et de renvoyer une valeur correspondante située dans une autre colonne de cette même plage. Son utilisation s’avère particulièrement efficace lorsque vous devez croiser des informations provenant de différentes sources ou retrouver des données associées à un identifiant unique.

L’application typique de RECHERCHEV consiste à rechercher un nom de produit, un numéro de référence ou un identifiant client dans une base de données pour récupérer des informations complémentaires telles que le prix, la catégorie ou l’adresse. Selon une étude récente, environ 73% des utilisateurs Excel professionnels utilisent régulièrement cette fonction dans leurs tâches quotidiennes, démontrant ainsi son importance dans l’environnement professionnel moderne.

Syntaxe et arguments de la fonction RECHERCHEV

La syntaxe complète de RECHERCHEV suit cette structure : =RECHERCHEV(valeur_cherchée; table_matrice; no_index_col; [valeur_proche]). Chaque argument joue un rôle spécifique dans le processus de recherche. L’argument valeur_cherchée correspond à l’élément que vous souhaitez localiser et doit obligatoirement se trouver dans la première colonne de votre plage de données. L’argument table_matrice définit la zone de recherche complète, incluant à la fois la colonne de recherche et celle contenant la valeur à renvoyer.

Le paramètre no_index_col indique le numéro de colonne (relatif à la plage sélectionnée) où se situe l’information à retourner. Par exemple, si votre plage commence en colonne B et que vous souhaitez récupérer une valeur de la colonne D, vous indiquerez 3 comme numéro d’index. L’argument optionnel valeur_proche détermine le type de correspondance : FAUX (ou 0) pour une recherche exacte, VRAI (ou 1) pour une recherche approximative. Lorsque cet argument est omis, Excel applique par défaut une recherche approximative, ce qui peut générer des résultats inattendus.

Utilisation de RECHERCHEV avec correspondance exacte (FAUX ou 0)

Pour effectuer une recherche textuelle précise, il est recommandé de toujours spécifier FAUX ou 0 comme quatrième argument de RECHERCHEV. Cette configuration garantit que la fonction ne renverra une valeur que si elle trouve une correspondance exacte de votre terme de recherche. Par exemple, la formule =RECHERCHEV("Dupont"; A2:C100; 2; FAUX) recherchera strict

ement le texte « Dupont » dans la colonne A, puis renverra la valeur de la colonne B située sur la même ligne. Si aucune correspondance exacte n’est trouvée, la fonction renverra l’erreur #N/A, ce qui est souvent préférable à un résultat approximatif incorrect. Cette approche est particulièrement importante lorsque vous manipulez des identifiants, des noms de clients ou des codes produits, où la moindre différence de caractère peut conduire à une mauvaise information.

Dans le cadre d’une recherche de texte dans une colonne Excel, vous pouvez également utiliser une référence de cellule comme valeur cherchée. Par exemple, si l’utilisateur saisit un nom dans la cellule E2, la formule =RECHERCHEV(E2; A2:C100; 3; FAUX) permettra de récupérer automatiquement l’information correspondante en colonne C. Cela facilite la création de formulaires dynamiques ou de tableaux de bord interactifs, où la recherche s’adapte en fonction de l’entrée de l’utilisateur. Pour éviter les problèmes de recopie de formules, pensez à utiliser des références absolues ($A$2:$C$100) pour la plage de recherche.

Gestion des erreurs #N/A avec SIERREUR et RECHERCHEV

Lorsque vous effectuez une recherche de texte dans une colonne Excel, il est fréquent que certaines valeurs ne soient pas trouvées, ce qui génère l’erreur #N/A. Si cette erreur brute apparaît dans vos rapports, elle peut perturber la lecture et faire croire à un dysfonctionnement du fichier. Pour rendre vos feuilles de calcul plus professionnelles, vous pouvez encapsuler RECHERCHEV dans la fonction SIERREUR et afficher un message personnalisé à la place de l’erreur.

Par exemple, au lieu d’écrire simplement =RECHERCHEV(E2; A2:C100; 2; FAUX), vous pouvez utiliser la formule =SIERREUR(RECHERCHEV(E2; A2:C100; 2; FAUX); "Texte non trouvé"). Si la valeur saisie dans E2 n’existe pas dans la colonne A, Excel affichera « Texte non trouvé » au lieu de #N/A. Cette approche améliore considérablement l’expérience utilisateur, notamment lorsque le fichier est utilisé par des personnes qui ne maîtrisent pas les détails techniques des fonctions Excel.

Vous pouvez également utiliser SIERREUR pour afficher une instruction telle que « PRÉCISEZ » lorsque la recherche n’aboutit pas. C’est utile dans les situations où l’utilisateur saisit un texte trop approximatif ou incomplet. Par exemple, =SIERREUR(RECHERCHEV(E2; A2:C100; 2; FAUX); "PRÉCISEZ") invite directement la personne à affiner sa recherche. Cette technique est comparable à un moteur de recherche qui vous suggère de reformuler votre requête lorsqu’il ne trouve pas de résultats.

Limites de RECHERCHEV pour la recherche de texte partiel

Malgré sa popularité, RECHERCHEV présente des limites importantes lorsqu’il s’agit de recherche de texte partiel dans une colonne. Par défaut, la fonction exige une correspondance exacte de la valeur recherchée avec le contenu de la première colonne de la plage. Cela signifie que si vous tapez « ART » alors que la cellule contient « MARTIN Dupont », RECHERCHEV ne trouvera rien, même si le texte recherché est bien présent à l’intérieur de la cellule. Pour ce type de recherche partielle, d’autres fonctions comme TROUVE ou CHERCHE sont plus adaptées.

Une autre limite de RECHERCHEV réside dans sa structure : la valeur cherchée doit obligatoirement se trouver dans la première colonne de la plage, et la fonction ne peut renvoyer que des valeurs situées à droite. De plus, elle ne renvoie que la première occurrence trouvée, ce qui peut être problématique en cas de doublons ou de textes similaires. Enfin, lorsqu’on tente d’utiliser les caractères génériques (* et ?) pour simuler une recherche partielle, le moindre espace ou caractère inattendu dans les données peut empêcher la correspondance.

Pour toutes ces raisons, RECHERCHEV reste très efficace pour des recherches structurées et exactes, mais montre rapidement ses limites dès que l’on souhaite « chercher comme avec un CTRL+F » dans une colonne. Pour des besoins plus souples, notamment pour localiser un mot au milieu d’une phrase ou gérer des chaînes multiples dans une même cellule, il est préférable de se tourner vers les fonctions dédiées à la manipulation de texte.

Fonction TROUVE et CHERCHE pour localiser du texte au sein d’une cellule

Lorsque vous avez besoin d’identifier la présence d’un mot ou d’une expression à l’intérieur même d’une cellule, les fonctions TROUVE et CHERCHE deviennent vos meilleurs alliés. Contrairement à RECHERCHEV, qui travaille sur des correspondances entières de cellules, ces fonctions analysent la chaîne de caractères et renvoient la position du texte recherché. Vous pouvez ainsi vérifier si une cellule contient un mot donné, même s’il est entouré d’autres termes.

On peut comparer TROUVE et CHERCHE à une loupe qui balaie chaque caractère de la cellule pour voir si la séquence recherchée apparaît. Si le texte est présent, la fonction renvoie le numéro du premier caractère correspondant ; sinon, elle génère une erreur #VALEUR!. Ce comportement peut sembler technique, mais il devient extrêmement puissant lorsque vous combinez ces fonctions avec SI, ESTNUM ou encore la mise en forme conditionnelle pour automatiser vos analyses.

Différences entre TROUVE (sensible à la casse) et CHERCHE

La principale différence entre TROUVE et CHERCHE réside dans la sensibilité à la casse et la gestion des caractères génériques. TROUVE est sensible aux majuscules et minuscules : chercher « pomme » ne donnera pas le même résultat que chercher « Pomme ». À l’inverse, CHERCHE ignore la casse, ce qui la rend plus tolérante dans la plupart des scénarios de recherche de texte dans une colonne Excel. Si vos données ne sont pas parfaitement homogènes au niveau des majuscules, CHERCHE sera souvent plus pratique.

Une autre différence importante est la prise en charge des caractères génériques. CHERCHE accepte les symboles * (n’importe quelle suite de caractères) et ? (un caractère unique), tandis que TROUVE ne les interprète pas comme des jokers. Par exemple, =CHERCHE("pomm*"; A2) peut fonctionner dans certains contextes pour repérer une chaîne commençant par « pomm ». En revanche, pour une recherche stricte sans ambiguïté, TROUVE reste la solution idéale.

Dans les deux cas, la syntaxe de base est similaire : =TROUVE(texte_cherché; texte; [no_départ]) ou =CHERCHE(texte_cherché; texte; [no_départ]). L’argument optionnel no_départ indique à partir de quel caractère la recherche doit commencer. C’est très utile si vous souhaitez trouver la deuxième ou troisième occurrence d’un mot en imbriquant plusieurs fonctions TROUVE ou CHERCHE.

Combinaison TROUVE avec SI pour tests conditionnels

Seule, la fonction TROUVE renvoie une position numérique ou une erreur, ce qui n’est pas toujours exploitable directement pour l’utilisateur. En la combinant avec la fonction SI, vous pouvez transformer ce résultat en un message clair ou en une action conditionnelle. Par exemple, vous pouvez demander à Excel d’afficher « OK » si un mot est présent dans une cellule, et « Pas OK » dans le cas contraire.

Une formule typique pourrait être : =SI(TROUVE("pomme"; A2)>0; "OK"; "Pas OK"). Toutefois, cette écriture brute pose un problème : si « pomme » n’est pas présent, TROUVE renverra une erreur #VALEUR! avant même que SI ne puisse évaluer la condition. Pour contourner cela, il est recommandé d’ajouter une couche de gestion d’erreur, par exemple avec ESTERREUR ou SIERREUR, comme nous allons le voir dans la section suivante.

Une approche robuste consiste à écrire : =SI(ESTERREUR(TROUVE("pomme"; A2)); "Pas OK"; "OK"). Ici, SI teste d’abord si TROUVE génère une erreur. Si c’est le cas, cela signifie que le texte n’a pas été trouvé, et Excel affiche « Pas OK ». Sinon, le texte est présent et le résultat affiché est « OK ». Cette structure « Si erreur, alors… sinon… » est très courante lorsqu’on veut transformer une recherche technique en information lisible pour l’utilisateur.

Application de ESTNUM(TROUVE()) pour validation de présence

Une autre manière élégante de vérifier la présence d’un texte dans une cellule consiste à utiliser la fonction ESTNUM en combinaison avec TROUVE ou CHERCHE. Rappelez-vous que TROUVE renvoie un nombre si le texte est trouvé, et une erreur sinon. De son côté, ESTNUM retourne VRAI si son argument est numérique, et FAUX dans le cas contraire. En les combinant, vous obtenez un test de présence très compact.

Par exemple, la formule =ESTNUM(TROUVE("pomme"; A2)) renverra VRAI si « pomme » est présent dans la cellule A2, et FAUX s’il ne l’est pas. Vous pouvez ensuite utiliser ce résultat booléen dans d’autres fonctions, comme SI, SOMME.SI ou même dans la mise en forme conditionnelle. Cette technique est très utile lorsque vous souhaitez filtrer ou compter des lignes contenant un texte spécifique sans afficher directement les positions.

Vous pouvez aussi vous en servir comme critère intermédiaire dans des fonctions plus complexes. Par exemple, pour compter combien de cellules de la colonne A contiennent le mot « urgent », vous pourriez utiliser une formule matricielle basée sur ESTNUM(TROUVE()). Cela revient un peu à poser une question binaire à chaque cellule : « Oui ou non, ce texte est-il là ? » et à additionner ensuite les réponses positives.

Recherche de plusieurs chaînes avec SOMMEPROD et TROUVE

Les besoins réels vont souvent au-delà de la recherche d’un seul mot. Que faire si vous devez vérifier si une cellule contient l’un parmi plusieurs termes (par exemple « pomme », « poire » ou « banane ») ? Dans ce cas, la combinaison de TROUVE (ou CHERCHE) avec SOMMEPROD devient très puissante. SOMMEPROD permet de traiter des tableaux de valeurs et de les additionner, ce qui en fait un excellent outil pour gérer plusieurs critères en même temps.

Imaginons que vous ayez une liste de mots-clés en E1:E3 (« pomme », « poire », « banane ») et un texte à analyser en A2. Vous pouvez utiliser une formule de ce type : =SOMMEPROD(--ESTNUM(TROUVE(E1:E3; A2)))>0. Ici, TROUVE renvoie un tableau de positions pour chaque mot-clé, ESTNUM le transforme en VRAI/FAUX, le double signe moins (--) convertit ces booléens en 1 et 0, et SOMMEPROD additionne le tout. Si le résultat est supérieur à 0, cela signifie qu’au moins un mot a été trouvé.

Cette approche revient à demander à Excel : « Est-ce que ce texte contient au moins un des mots de ma liste ? » C’est un peu comme passer votre cellule au travers d’un tamis composé de plusieurs critères. Vous pouvez ensuite intégrer ce test dans une formule SI, un FILTRE dynamique ou une mise en forme conditionnelle pour mettre en évidence les lignes correspondantes. Pour de grandes bases de données, cette technique évite d’avoir à multiplier les colonnes intermédiaires et centralise la logique de recherche dans une seule formule.

Filtres avancés excel pour extraire les données contenant du texte spécifique

Au-delà des formules, Excel propose également des outils intégrés pour rechercher du texte dans une colonne et extraire automatiquement les lignes correspondantes. Les filtres avancés en font partie et sont particulièrement utiles lorsque vous souhaitez isoler, copier ou analyser uniquement les enregistrements contenant un mot ou une expression donnée. Contrairement au filtre automatique classique, le filtre avancé permet de définir des critères dans une plage dédiée et de copier le résultat vers un autre emplacement.

On peut voir les filtres avancés comme un « moteur de requêtes » intégré à Excel : vous écrivez vos conditions dans quelques cellules, puis Excel sélectionne pour vous toutes les lignes qui les respectent. Cette méthode est idéale lorsque vous travaillez sur des rapports récurrents ou que vous devez appliquer les mêmes critères de recherche de texte à plusieurs tableaux.

Configuration des critères avec caractères génériques (* et ?)

Pour configurer un filtre avancé basé sur du texte, vous devez d’abord créer une zone de critères avec au moins un en-tête de colonne identique à celui de votre tableau. Sous cet en-tête, vous saisissez la condition de texte à appliquer. C’est ici que les caractères génériques entrent en jeu : le symbole * représente n’importe quelle suite de caractères, tandis que ? représente un seul caractère. Par exemple, pour filtrer toutes les cellules de la colonne « Description » contenant le mot « pomme », vous pouvez écrire *pomme* comme critère.

Concrètement, si votre en-tête de colonne s’appelle « Description », votre zone de critères pourrait ressembler à ceci :

Description
*pomme*

Lorsque vous appliquez ensuite le filtre avancé (menu Données > Filtrer > Filtre avancé), Excel sélectionnera toutes les lignes dont la description contient le mot « pomme », peu importe sa position dans la phrase. C’est l’équivalent d’un CTRL+F appliqué à une colonne entière, mais avec la possibilité de copier directement les résultats dans une nouvelle zone.

Utilisation de l’opérateur = et <> dans les filtres avancés

Les filtres avancés permettent également d’utiliser les opérateurs = et <> pour affiner vos recherches de texte. L’opérateur = impose une égalité stricte, tandis que <> signifie « différent de ». Par exemple, pour extraire uniquement les lignes où la colonne « Statut » contient exactement « Validé », vous pouvez inscrire =Validé comme critère. À l’inverse, pour exclure toutes les lignes contenant ce mot, vous utiliserez <>Validé.

Pour combiner ces opérateurs avec des caractères génériques, il suffit de les inclure dans la chaîne. Par exemple, =*urgent* extrait toutes les lignes contenant le mot « urgent » dans la cellule, tandis que <>*test* exclut toutes celles qui comportent le mot « test ». Cette flexibilité vous permet de mettre en place des requêtes textuelles assez sophistiquées sans écrire une seule formule.

Il est important de comprendre la logique des lignes et colonnes dans la zone de critères : les conditions situées sur la même ligne sont combinées avec un ET logique, tandis que celles sur des lignes différentes sont combinées avec un OU. Ainsi, vous pouvez définir des scénarios comme « Description contient ‘pomme’ ET Statut = Validé » ou « Description contient ‘pomme’ OU contient ‘poire' » simplement en organisant vos critères dans la plage.

Extraction automatique vers une plage de destination

L’un des grands avantages du filtre avancé est la possibilité de copier automatiquement les résultats dans une autre plage, voire dans une autre feuille. Lors de la configuration du filtre, vous pouvez choisir l’option « Copier vers un autre emplacement » et spécifier une cellule de destination. Excel y reproduira l’en-tête et les lignes filtrées, ce qui est très pratique pour générer des rapports basés sur une recherche de texte dans une colonne Excel.

Cette fonctionnalité s’apparente à une extraction de données : vous conservez la base de données complète d’un côté, et obtenez une vue filtrée et figée de l’autre. Cela évite de manipuler directement la source et réduit les risques d’erreurs. Vous pouvez ensuite appliquer d’autres analyses ou mises en forme à cette plage d’extraction sans impacter le tableau d’origine.

Pour des tâches répétitives, vous pouvez même enregistrer une macro qui applique le filtre avancé avec vos critères de texte et recopie les résultats vers la même zone. D’un simple clic, vous rafraîchirez ainsi vos extractions en fonction des données mises à jour, ce qui constitue une première forme d’automatisation sans entrer dans du VBA complexe.

Fonctions FILTRE et FILTREXML pour recherche dynamique de texte

Avec les versions récentes d’Excel (Microsoft 365 notamment), de nouvelles fonctions dynamiques comme FILTRE et FILTREXML ont transformé la manière de rechercher du texte dans une colonne. Contrairement aux filtres avancés manuels, ces fonctions génèrent des plages de résultats dynamiques qui se mettent à jour automatiquement dès que les données sources changent. Pour les analystes qui manipulent de grandes bases, c’est un véritable gain de temps.

On peut comparer FILTRE à un « filtre vivant » intégré dans une cellule : au lieu de masquer les lignes qui ne correspondent pas, il crée un tableau de sortie qui ne contient que les enregistrements répondant au critère. Combiné avec des fonctions textuelles comme TROUVE ou CHERCHE, FILTRE permet de construire des recherches partielles très flexibles, même lorsque l’utilisateur saisit lui-même le mot-clé dans une cellule.

Syntaxe de la fonction FILTRE avec critères multiples

La syntaxe de base de la fonction FILTRE est la suivante : =FILTRE(plage; inclure; [si_vide]). L’argument plage correspond au tableau de données à filtrer, tandis que inclure est une expression logique (ou un tableau de VRAI/FAUX) qui détermine quelles lignes doivent être conservées. L’argument optionnel si_vide permet de définir le message à afficher si aucun résultat ne correspond au critère.

Par exemple, si vos données se trouvent dans A2:C100 et que vous souhaitez extraire toutes les lignes dont la colonne C contient exactement « Validé », vous pouvez utiliser : =FILTRE(A2:C100; C2:C100="Validé"; "Aucun enregistrement"). La fonction renverra alors un tableau dynamique listant uniquement les enregistrements validés. Vous pouvez ensuite étendre cette logique à plusieurs critères en les combinant avec des opérateurs logiques.

Le grand avantage de FILTRE est sa capacité à gérer naturellement ces tableaux logiques. Tant que la taille de l’argument inclure correspond au nombre de lignes de la plage, Excel appliquera le critère ligne par ligne et renverra toutes celles qui renvoient VRAI. C’est sur ce principe que nous allons construire des recherches textuelles plus avancées.

Opérateurs logiques ET et OU dans FILTRE

Pour appliquer plusieurs conditions simultanées dans FILTRE, vous pouvez utiliser les opérateurs logiques de base : la multiplication * pour le ET, et le signe plus + pour le OU. Cette approche peut sembler surprenante, mais elle découle du fait que les valeurs booléennes VRAI et FAUX sont implicitement converties en 1 et 0. En multipliant ou additionnant ces 1 et 0, vous simulez un ET ou un OU logiques sur chaque ligne.

Par exemple, pour filtrer A2:C100 sur les lignes où la colonne B contient « France » ET la colonne C contient « Validé », vous pouvez écrire : =FILTRE(A2:C100; (B2:B100="France")*(C2:C100="Validé"); "Aucun résultat"). Ici, chaque condition renvoie un tableau de VRAI/FAUX ; en les multipliant, seules les lignes où les deux conditions sont vraies donnent un 1, donc sont conservées.

Pour un OU logique, il suffit de remplacer * par +. Ainsi, =FILTRE(A2:C100; (B2:B100="France")+(B2:B100="Belgique"); "Aucun résultat") renverra toutes les lignes dont le pays est soit « France », soit « Belgique ». Cette logique devient très puissante lorsqu’elle est combinée à des tests textuels comme ESTNUM(TROUVE()), car elle permet de construire des recherches de texte combinées très fines.

Recherche partielle avec ESTNUM(TROUVE()) dans FILTRE

Pour effectuer une recherche de texte partiel dans une colonne Excel avec FILTRE, vous pouvez réutiliser l’approche ESTNUM(TROUVE()) vue précédemment. L’idée est simple : vous créez d’abord un tableau logique indiquant quelles lignes contiennent le texte recherché, puis vous fournissez ce tableau à FILTRE comme critère inclure. Ainsi, seules les lignes contenant le mot-clé seront renvoyées dans le résultat dynamique.

Supposons que vous ayez des descriptions en B2:B100 et que l’utilisateur saisisse un mot-clé en E2. Vous pouvez alors écrire : =FILTRE(A2:C100; ESTNUM(TROUVE($E$2; B2:B100)); "Aucune correspondance"). Pour chaque ligne, TROUVE retourne la position du mot-clé dans la description ou une erreur s’il est absent. ESTNUM transforme ces résultats en VRAI/FAUX, et FILTRE extrait automatiquement toutes les lignes pertinentes.

Ce montage se rapproche beaucoup de l’expérience d’un champ de recherche sur un site Web : dès que l’utilisateur modifie le mot-clé en E2, la liste des résultats se met à jour instantanément. Vous pouvez même combiner cette recherche partielle avec d’autres conditions (par exemple un statut ou une date) en multipliant les expressions logiques dans l’argument inclure. C’est une méthode moderne, puissante et flexible pour interroger vos données sans écrire de macro.

FILTREXML pour requêtes XPath complexes sur données structurées

La fonction FILTREXML est moins connue, mais elle ouvre des perspectives intéressantes lorsque vos données sont structurées au format XML ou peuvent être transformées en une chaîne XML. Sa syntaxe est =FILTREXML(texte; xpath), où texte est une chaîne de caractères contenant du XML bien formé, et xpath est une expression XPath permettant de sélectionner les nœuds souhaités.

Dans le contexte de la recherche de texte, FILTREXML peut s’avérer utile si vous importez des données issues de services Web ou de fichiers XML. Vous pouvez alors utiliser des requêtes XPath pour cibler des éléments contenant un texte particulier, un peu comme si vous interrogez une base de données. Par exemple, vous pourriez sélectionner tous les nœuds <client> dont le nom contient une certaine chaîne, puis renvoyer ces résultats dans une plage Excel.

Cela dit, FILTREXML reste une fonction avancée, davantage utilisée par des profils techniques ou dans des environnements où les données sont déjà structurées. Pour la plupart des scénarios de recherche de texte dans une colonne Excel, la combinaison de FILTRE avec TROUVE ou CHERCHE sera plus simple à mettre en œuvre. FILTREXML trouve surtout sa place lorsqu’il s’agit de traiter directement des flux XML sans passer par des étapes de transformation manuelle.

Rechercher et remplacer avec VBA pour automatisation avancée

Lorsque les besoins de recherche de texte deviennent répétitifs, massifs ou très spécifiques, les fonctions intégrées d’Excel peuvent montrer leurs limites. C’est là que VBA (Visual Basic for Applications) entre en jeu, en permettant d’automatiser des recherches complexes et des remplacements en masse. Avec quelques lignes de code, vous pouvez parcourir une colonne, repérer toutes les occurrences d’un texte donné et déclencher des actions personnalisées pour chacune d’elles.

On peut voir VBA comme la « boîte à outils avancée » d’Excel : il reprend les mêmes opérations que l’interface graphique (rechercher, filtrer, remplacer), mais vous donne la possibilité de les enchaîner, de les paramétrer finement et de les exécuter à la demande. Pour des fichiers volumineux ou des traitements réguliers, cette automatisation peut représenter un gain de temps considérable.

Méthode Range.Find avec paramètres LookIn et LookAt

La méthode Range.Find est l’une des plus utilisées en VBA pour rechercher du texte dans une colonne. Elle permet de spécifier la plage de recherche, le texte à trouver, ainsi que plusieurs paramètres comme LookIn (où chercher : formules, valeurs, commentaires) et LookAt (recherche exacte ou partielle). Par exemple, vous pouvez rechercher toutes les cellules de la colonne A contenant le mot « urgent » dans leur valeur affichée.

Un exemple de code VBA pourrait ressembler à ceci :

Dim c As RangeWith Sheets("Feuil1").Range("A:A")   Set c = .Find(What:="urgent", LookIn:=xlValues, LookAt:=xlPart)End With

Ici, LookIn:=xlValues indique que la recherche porte sur les valeurs affichées (et non les formules), tandis que LookAt:=xlPart autorise les correspondances partielles, un peu comme une recherche de texte partiel dans une colonne Excel. Vous pouvez ajuster ces paramètres pour contrôler finement le comportement de la recherche, par exemple en exigeant une correspondance entière avec LookAt:=xlWhole.

Boucle FindNext pour itérer sur toutes les occurrences

La méthode Find ne renvoie qu’une seule occurrence à la fois. Pour parcourir toutes les occurrences d’un texte dans une plage, vous devez utiliser la méthode FindNext dans une boucle. Le principe consiste à stocker la première cellule trouvée, puis à appeler FindNext jusqu’à revenir à cette première cellule, ce qui signale que toutes les occurrences ont été explorées.

Un schéma courant est le suivant :

Dim firstAddress As StringDim c As RangeWith Sheets("Feuil1").Range("A:A")   Set c = .Find(What:="urgent", LookIn:=xlValues, LookAt:=xlPart)   If Not c Is Nothing Then      firstAddress = c.Address      Do         ' Traitement sur c         Set c = .FindNext(c)      Loop While Not c Is Nothing And c.Address <> firstAddress   End IfEnd With

À l’intérieur de la boucle, vous pouvez effectuer toutes sortes d’actions : colorer la cellule, copier la ligne dans une autre feuille, incrémenter un compteur, etc. Cette approche est très puissante pour créer des routines sur mesure de recherche de texte, par exemple pour auditer un fichier ou détecter des anomalies dans une colonne donnée.

Application de Range.Replace pour substitution en masse

Pour remplacer automatiquement un texte par un autre dans une colonne, VBA propose la méthode Range.Replace. Elle fonctionne de manière similaire à la commande « Rechercher et remplacer » de l’interface Excel, mais vous pouvez l’intégrer dans des procédures plus larges et l’exécuter en un clic. C’est très utile si, par exemple, vous devez régulièrement harmoniser des libellés (remplacer « OK » par « Validé », « NOK » par « Refusé », etc.).

Un exemple simple de remplacement dans la colonne B serait :

Sheets("Feuil1").Range("B:B").Replace _  What:="NOK", Replacement:="Refusé", _  LookAt:=xlPart, SearchOrder:=xlByRows, _  MatchCase:=False

Ici, LookAt:=xlPart autorise le remplacement même si « NOK » fait partie d’une chaîne plus longue, et MatchCase:=False rend l’opération insensible à la casse. Vous pouvez bien sûr adapter ces paramètres selon vos besoins. En quelques lignes de code, vous obtenez ainsi un outil de substitution en masse parfaitement adapté à vos règles métier.

Mise en forme conditionnelle pour visualiser les cellules contenant du texte

Enfin, la recherche de texte dans une colonne Excel ne se limite pas à extraire ou remplacer des données. Vous pouvez aussi souhaiter simplement visualiser rapidement les cellules qui contiennent un certain mot ou motif. La mise en forme conditionnelle est alors un excellent outil : elle permet de colorer automatiquement les cellules correspondant à un critère, sans modifier le contenu lui-même.

On peut comparer cela à un surligneur numérique : plutôt que de parcourir manuellement la colonne, vous laissez Excel mettre en évidence pour vous toutes les occurrences d’un texte donné. Cette approche est particulièrement utile pour des revues rapides, des contrôles de qualité ou des tableaux de suivi où certains mots-clés doivent attirer l’attention.

Règles basées sur formule avec TROUVE ou CHERCHE

Pour créer une mise en forme conditionnelle basée sur une recherche de texte partiel, vous pouvez utiliser une formule personnalisée faisant appel à TROUVE ou CHERCHE. Dans le menu Mise en forme conditionnelle > Nouvelle règle > Utiliser une formule pour déterminer pour quelles cellules le format sera appliqué, vous pouvez saisir une expression comme =ESTNUM(TROUVE("urgent"; $A1)) en adaptant la référence de colonne.

Cette formule renverra VRAI pour toutes les cellules de la colonne A contenant le mot « urgent », ce qui déclenchera l’application du format que vous avez défini (fond coloré, texte en gras, etc.). Si vous souhaitez une recherche insensible à la casse ou utilisant des caractères génériques, vous pouvez remplacer TROUVE par CHERCHE. Dans tous les cas, pensez à bien fixer la colonne (par exemple $A1) pour que la règle s’applique correctement à toute la plage sélectionnée.

Cette technique vous permet de transformer en quelques clics une colonne brute en une vue beaucoup plus lisible, où les informations importantes ressortent visuellement. C’est aussi une bonne manière de valider rapidement vos formules de recherche : si la mise en forme conditionnelle ne met rien en évidence, cela peut indiquer un problème de critère ou de données.

Utilisation de caractères génériques dans les règles prédéfinies

Excel propose également des règles prédéfinies de mise en forme conditionnelle, notamment « Texte contenant… ». Ces règles sont très simples à mettre en place : vous indiquez le mot ou l’expression à rechercher, puis vous choisissez un format. En coulisses, Excel utilise une logique proche de CHERCHE pour identifier les cellules contenant ce texte partiel dans la colonne.

Bien que l’interface ne le mette pas toujours en avant, vous pouvez utiliser des caractères génériques dans certaines de ces règles. Par exemple, en saisissant *test*, vous demandez à Excel de mettre en forme toutes les cellules contenant le mot « test » entouré de n’importe quels autres caractères. C’est pratique lorsque vous ne connaissez pas précisément la position du mot dans la cellule ou lorsque les données présentent de légères variations.

Cependant, pour des scénarios plus complexes (par exemple combiner plusieurs mots-clés, exclure certains motifs, etc.), il est souvent préférable de revenir à une règle basée sur une formule. Cela vous donne un contrôle total sur la logique de recherche de texte, au prix d’un léger effort supplémentaire de configuration.

Combinaison de plusieurs critères de mise en forme conditionnelle

Dans les tableaux complexes, vous pouvez avoir besoin de mettre en évidence différents types de texte avec des formats distincts. Par exemple, les cellules contenant « urgent » en rouge, celles contenant « en retard » en orange, et celles contenant « validé » en vert. Pour cela, vous pouvez créer plusieurs règles de mise en forme conditionnelle, chacune avec sa propre formule de recherche de texte dans la colonne.

Il est important de prêter attention à l’ordre des règles et à la gestion des conflits éventuels. Excel applique les règles dans l’ordre indiqué et, selon les options choisies, une règle peut empêcher les suivantes de s’appliquer. Pour garder une vision claire, vous pouvez ouvrir le gestionnaire de règles et vérifier la hiérarchie, un peu comme on inspecte les couches d’un logiciel de dessin.

En combinant plusieurs règles basées sur TROUVE, CHERCHE ou même sur des critères numériques, vous obtenez une représentation visuelle riche de vos données textuelles. Cela transforme votre colonne en véritable tableau de bord, où la couleur et le style du texte vous apportent en un coup d’œil des informations que vous auriez sinon dû chercher manuellement pendant de longues minutes.

Plan du site