Rechercher un mot où une partie d'un mot dans le tableur Excel

  • Initiateur de la discussion Initiateur de la discussion chriwautier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

chriwautier

Guest
Bonjour le Forum.

Voila voilou,

j'ai un tableau EXCEL de la ligne 3 à 3000 et colonnes B à M

Je voudrais rechercher un mot où une partie d'un mot,
Une fois le mot ou les mots trouvés
Il indique par exemple le chiffre "1"dans la colonne A sur la ligne ou ce trouve les mots

Ensuite j'utilise le filtre de la colonne A pour sélectionné le "1"

Et ensuite remettre la liste dans l'état initiale.

Je n'ai pas trouvé dans le forum un programme similaire , est il possible de le réaliser ?

Merci de vos réponses
 
Dernière modification par un modérateur:
Re : Rechercher un mot où une partie d'un mot dans le tableur Excel

Bonjour Chriwautier, bonjour le forum,

Cette macro te permet une recherche d'un mot ou d'une partie via une boite de texte. Chaque fois qu'une occurrence est trouvée, 1 est ecrit en colonne A :

Code:
Sub Macro1()
Dim c As Range 'déclare la variable c
Dim car As String 'déclare la variable car
Dim ad As String 'déclare la variable ad
 
car = InputBox("Tapez le mot (ou la chaîne de caractères) recherché", "Rechercher") 'définit la variable car (Boîte de texte)
If car = "" Then Exit Sub 'si rien n'est édité, sort de la procédure
 
With Range("B3:M3000") 'prend en compte la plage de la recherche
 
    Set c = .Find(car) 'définit la variable c (recherche du texte édité dans la boîte de texte)
 
    If Not c Is Nothing Then 'condition : si une occurrence est trouvée
        ad = c.Address 'définit la variable ad (adresse de cette occurrence)
 
        Do 'exécute
            Cells(c.Row, 1).Value = 1 'érit "1" dans la colonne A de la ligne correspondante
            Set c = .FindNext(c) 'redéfinit la variable C
        'tourne en boucle tant qu'une nouvelle occurrence est trouvée avec un adresse différente de ad
        Loop While Not c Is Nothing And c.Address <> ad
 
    End If 'fin de la condition
 
End With
 
End Sub

Dis-moi si ce début te conviendrait et si tu veux poursuivre en lui faisant faire le filtre.
 
Re : Rechercher un mot où une partie d'un mot dans le tableur Excel

Bonjour Robert, Bonjour le Forum,

Super c'est ce que je recherchais, maintenant c'est vrai que j'utilise chaque fois le filtre de la colonne A en selectionnant "1" suite à ton programme de recherche, si sa ce fait automatiquement c'est un plus et un gain de temps pour moi.

Encore Merci

Et bonne journée

Christian
 
Re : Rechercher un mot où une partie d'un mot dans le tableur Excel

Bonjour Christian, bonjour le forum,

J'ai modifié la macro en rajoutant le filtre automatique. J'ai aussi rempli de rouge les cellules contenant l'occurrence (tu pourras supprimer cette ligne si ça ne te plait pas). La seconde macro supprime le filtre et la couleur rouge.
Code:
Sub Macro1()
 
'****************************
'Macro pour couleur et filtre
'****************************
 
Dim c As Range 'déclare la variable c
Dim car As String 'déclare la variable car
Dim ad As String 'déclare la variable ad
Dim x As Integer
 
car = InputBox("Tapez le mot (ou la chaîne de caractères) recherché", "Rechercher") 'définit la variable car (Boîte de texte)
If car = "" Then Exit Sub 'si rien n'est édité, sort de la procédure
 
With Range("B3:M3000") 'prend en compte la plage de la recherche
 
    Set c = .Find(car) 'définit la variable c (recherche du texte édité dans la boîte de texte)
 
    If Not c Is Nothing Then 'condition : si une occurrence est trouvée
        ad = c.Address 'définit la variable ad (adresse de cette occurrence)
        Do 'exécute
            c.Interior.ColorIndex = 3 'remplit de rouge (supprime cette ligne si tu ne souhaites pas de couleur)
            Cells(c.Row, 1).Value = 1 'érit "1" dans la colonne A de la ligne correspondante
            Set c = .FindNext(c) 'redéfinit la variable C
        'tourne en boucle tant qu'une nouvelle occurrence est trouvée avec un adresse différente de ad
        Loop While Not c Is Nothing And c.Address <> ad
 
    End If 'fin de la condition
 
End With
 
Range("A3").AutoFilter 'mode filtre automatique
Selection.AutoFilter Field:=1, Criteria1:="1" 'critère
 
End Sub
 
Sub Macro2()
 
'**************************************
'Macro pour supprimer couleur et filtre
'**************************************
 
Range("A3").AutoFilter 'supprime le filtre automatique
Range("A3").CurrentRegion.Interior.ColorIndex = xlNone 'enlève la couleur rouge (supprime aussi si tu as supprimé en haut)
 
End Sub
 
Re : Rechercher un mot où une partie d'un mot dans le tableur Excel

Bonjour à tous,

Pour réagir à ce code, et après avoir je pense épuisé tous les posts des forums d'Excel Downloads, je me demandais s'il était possible de colorier en rouge uniquement le terme recherché initialement, au lieu du contenu entier de la cellule....Je pense qu'il n'y a qu'une petite modification dans le code à faire, mais je ne conceptualise pas encore assez bien VBA pour l'instant....


Merci par avance

fredjezzar
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
370
Retour