Filtre d'un tableau selon un mot defini
Bonjour à tous,
Je voulais tout d'abord vous remercier pour ce site très très pratique. Je l'ai découvert par hasard alors que je voulais créer une liste déroulante semi-automatique. Vos conseils m'ont permis d'améliorer la trame excel, sur laquelle nous travaillons, au-delà de mes espérances (j'ai rajouté une fonction recherche v pour récupérer les codes et fait une 2MFC qui nous permet de voir les erreurs et les doublons). Mon responsable à été bluffé et rien que pour ça je vous en remercie.
Par contre je cale sur un tableau. J'aimerais pouvoir taper un mot en B2 et mon tableau sélectionne toutes les lignes où mon mot se trouve, et j'aimerais que mon tableau n'affiche que ces lignes.
Je vous joins le fichier excel.
Je vous remercie d'avance et vous souhaite une agréable journée.
Edit
Re-bonjour,
Je vous remercie pour votre vive réponse Dan mais il ne se passe rien lorsque je tape le mot en B2. Peut-être j'éxécute mal le code ou dans la mauvaise fenêtre. Là je suis un peu perdue... Je suis une débutante mais déjà accro!!!
Je vous remercie de me donner plus de détails quant à la procédure.
flofol a écrit :Re-bonjour,
Je vous remercie pour votre vive réponse Dan mais il ne se passe rien lorsque je tape le mot en B2. Peut-être j'éxécute mal le code ou dans la mauvaise fenêtre. Là je suis un peu perdue... Je suis une débutante mais déjà accro!!!
Je vous remercie de me donner plus de détails quant à la procédure.
de ce que j'ai pu tester suite à la réponse de DAN :
ouvrir ton fichier sur la feuil1
sur le nom de l'onglet (feuil1) faire un clic droit et choisir "visualiser le code" : ca ouvre une fenetre VBA.
coller le code suivant :
fermer cette fenetre VBA
dans ton fichier, en B2, changes le mot par un présent dans ton tableau.
à chaque fois que ce mot est trouvé dans la colonne B, la case en B et en C associée se colore de turquoise.
P.S. : apparemment cela ne tient pas compte de la syntaxe
@ Dan ton édit... a tout viré
gigi777 a écrit :flofol a écrit :Re-bonjour,
Je vous remercie pour votre vive réponse Dan mais il ne se passe rien lorsque je tape le mot en B2. Peut-être j'éxécute mal le code ou dans la mauvaise fenêtre. Là je suis un peu perdue... Je suis une débutante mais déjà accro!!!
Je vous remercie de me donner plus de détails quant à la procédure.
de ce que j'ai pu tester suite à la réponse de DAN :
ouvrir ton fichier sur la feuil1
sur le nom de l'onglet (feuil1) faire un clic droit et choisir "visualiser le code" : ca ouvre une fenetre VBA.
coller le code suivant :
fermer cette fenetre VBA
dans ton fichier, en B2, changes le mot par un présent dans ton tableau.
à chaque fois que ce mot est trouvé dans la colonne B, la case en B et en C associée se colore de turquoise.
P.S. : apparemment cela ne tient pas compte de la syntaxe
@ Dan ton édit... a tout viré
Je vous remercie de prendre du temps pour mon problème.
Je me suis mal exprimée je voudrais que mon tableau affiche seulement à l'ecran les lignes qui comprennent le mot sélectionné. Le reste doit être caché. Je ne sais pas si c'est possible mais depuis que j'ai découvert ce site je me rends compte qu'avec excel tout est possible alors je tente...
J'avais déjà utilisé la MFC avec la formule "cherche" pour colorer les cellules comprennant le mot séléctionné; d'ailleurs je n'arrive pas à colorer les cellules avec votre code si j'enlève ma MFC. Mais c'est pas grave car c'est pas ça que je souhaite...
Encore merci de m'aider
RE
Bon déso mais je me suis aperçu d'un souci, raison pour laquelle j'ai éditer le post
- Cliquer droit sur l'onglet Feuil1
- Choisir 'visualiser le code"
- coller le code dans la fenetre
Private Sub Worksheet_Change(ByVal Target As Range)
'Macro Dan
Dim i as integer
If Not Intersect(Target, Range("B2")) Is Nothing Then
Application.ScreenUpdating = False
If FilterMode Then ShowAllData
Cells.EntireRow.Hidden = False
If IsEmpty(Target) Then Exit Sub
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
With Range("a" & i & ":D" & i)
If .Find(Target.Value, LookIn:=xlValues) Is Nothing Then Rows(i).Hidden = True
End With
Next
End If
Application.ScreenUpdating = True
End SubReste à mettre quelque chose en B2
Si ok, cliquer sur le V vert à coté du bouton EDITER pour cloturer le fil lors de la réponse
Amicalement
Dan a écrit :RE
Bon déso mais je me suis aperçu d'un souci, raison pour laquelle j'ai éditer le post
- Cliquer droit sur l'onglet Feuil1
- Choisir 'visualiser le code"
- coller le code dans la fenetre
Private Sub Worksheet_Change(ByVal Target As Range) 'Macro Dan Dim i as integer If Not Intersect(Target, Range("B2")) Is Nothing Then Application.ScreenUpdating = False If FilterMode Then ShowAllData Cells.EntireRow.Hidden = False If IsEmpty(Target) Then Exit Sub For i = 4 To Range("A" & Rows.Count).End(xlUp).Row With Range("a" & i & ":D" & i) If .Find(Target.Value, LookIn:=xlValues) Is Nothing Then Rows(i).Hidden = True End With Next End If Application.ScreenUpdating = True End SubReste à mettre quelque chose en B2
Si ok, cliquer sur le V vert à coté du bouton EDITER pour cloturer le fil lors de la réponse
Amicalement
Merci merci merci merci!!!!!!
Décidément vous êtes trop trop forts, de véritables magiciens d'excel!!!
Je suis grave impressionnée.... Pffuiiilala!!
Hi hi hi mais du coup je vais impressionner du monde aussi grâce à vous ici au taf!!!
Je me perfectionne déjà grâce à vos cours, qui sont tip top, là je m'attèle au cours VBA car je n'y connais rien.
Encore un énorme merci et à bientôt
Flora qui est très très contente