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

chriwautier

XLDnaute Nouveau
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 édition:

Robert

XLDnaute Barbatruc
Repose en paix
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.
 

chriwautier

XLDnaute Nouveau
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
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

fredjezzar

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
312 765
Messages
2 091 892
Membres
105 084
dernier inscrit
lca.pertus