Masquer et afficher des lignes selon liste déroulante

Bonjour,

Je débute dans tout ce qui est matricielle/macros soyez indulgent SVP . J'ai réalisé un tableau, et je voudrais faire apparaitre les lignes dans lesquelles le mot qui est affiché dans la cellule C5 (liste déroulante) y soit inscrit. Les lignes où il n'y a pas de correspondance doivent être masquées. J'ai tenté un truc en regardant différents posts, mais impossible de faire fonctionner quoi que ce soit ahah.

Je vous met le Excel en pièce jointe.

Merci d'avance.

133critere-outil.zip (151.76 Ko)

Voici le code que j'essaye de faire fonctionner. Pourriez vous me dire si vous voyez des incohérences ou autre? Merci

Private Sub Worksheet_Change(ByVal liste As Rang)

If Target.Address = Worksheets("outil").Range("C5").Address And Worksheets("outil").Range("C5") <> "" Then
    Nom = Range("C5").Value
    Call Findname(Nom)
Else
    Range("C8:C120").Select
    Selection.EntireRow.Hidden = False
    Range("C5").Select
End If

End Sub

Sub unhide()

Range("C8:C120").Select
Selection.EntireRow.Hidden = False
Range("C5").Select

End Sub

Bonjour,

Tu appelles une procédure qui n'existe pas ! (Findname)

Pourquoi ne pas utiliser le filtre : pas de problème sur la conformité des libellés, besoin de rien d'autre et c'est rapide !

Cordialement.

Bonjour et merci pour votre réponse.

Le problème est qu'il y'a des "indicateurs" qui peuvent être pris en compte pour deux phases de projet différentes comme vous pouvez le voir dans la colonne "C". Et je veux seulement les 6 possibilités différentes qui sont dans la liste déroulante "C5". Me suis je bien exprimé ?

Admettons !

Mais si tu veux utiliser des libellés en C5 pour filtrer sur la colonne C les mentions contenant le libellé en C5, il faudrait d'abord que les libellés en C5 puissent figurer dans la colonne C, ce qui n'est pas le cas !

Ah oui c'est pas faux ahah

Je crois que j'ai trouvé la solution du coup, en tout cas sa marche avec ce code

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Application.Intersect(Target, Range("C5")) Is Nothing And Target <> "" Then
        With Worksheets("outil")
            .Range("$C$7:$C$20").AutoFilter Field:=1
            .Range("$C$7:$C$20").AutoFilter Field:=1, Criteria1:="*" & Target & "*"
            .Activate
        End With
    End If

End Sub
Rechercher des sujets similaires à "masquer afficher lignes liste deroulante"