Filtre et affichage de ligne

Bonjour, je galère depuis des heures sans trouver la solution, raison de ce post ...

Voici mon problème : Dans un tableau Excel, mes données vont de A5 à j35, je souhaite en sélectionnant une entrée dans une liste déroulante dans la case H2 que cela n’affiche que certaines lignes. Dans la colonne B, j'ai la lettre A, la lettre C, la lettre M. La correspondance est la suivante : 1 un pour la lettre A, 2 pour la lettre C, 3 pour la lettre M. Par exemple, je souhaite qu’en sélectionnant 1 dans la liste déroulante H2 avoir uniquement les lignes qui ont dans la colonne B la lettre A,C et M ensuite en sélectionnant 2 dans la liste déroulante H2 avoir uniquement les lignes qui ont dans la colonne B la lettre C et M, en sélectionnant 3 dans la liste déroulante H2 avoir uniquement les lignes qui ont dans la colonne B la lettre M.

Je joins le fichier, si cela peut aider.
Merci pour votre aide

Bonsoir Gribouille,

Ma vision des choses, largement plus simple, avec un tableau structuré et segment sur la colonne G.

Peut-être que ça ne conviendra pas... désolé par avance

bonjour et

"Français" n'est pas le renseignement demandé : Attendu une année 2016, 2021... ou 365 si tu as un abonnement suivi de 32 ou 64 bits le cas échant.

Ce renseignement se trouve dans le menu Fichier > Compte (en bas) + Clic sur le point d'interrogation :

ver2016

puis page suivante :

ver2016b

Merci de mettre à jour ton profil

A+

Merci JB. Cette solution est une alternative intéressante que je ne connaissais pas mais je souhaite vraiment pouvoir avoir un chiffre en H2 ( pour avoir ce chiffre lors de l'impression ). Ne sois pas désolé. C'est moi qui te remercie de m'avoir appris une fonction pertinente .

Je n'avais pas compris, désolé @galopin01. C'est modifié.

Bonjour à tous,

Il faut utiliser l'opérateur xlFilterValues dans ton cas.

Essaie ceci :

Sub Filtrer()
    Dim Critere
    With Sheets("Feuil1")
        Select Case .Range("H2").Value
            Case 1: Critere = Array("A", "C", "M")
            Case 2: Critere = Array("C", "M")
            Case 3: Critere = Array("M")
        End Select
        If .FilterMode Then .ShowAllData
        .Range("A4:I36").AutoFilter 2, Critere, xlFilterValues
    End With
End Sub

klin89

Merci pour ta réponse Klin89. Désolé pour cette stupide question mais le novice que je suis ne sais même pas où insérer cet opérateur. Je n'ai jamais utilisé ..Du coup, je ne sais pas quoi faire de cette pépite .

J'avais créé cette formule mais elle ressort une erreur ...

=FILTRE(A5:J35, SI(H2=1, (B5:B35="A") + (B5:B35="C") + (B5:B35="M"), SI(H2=2, (B5:B35="C") + (B5:B35="M"), SI(H2=3, (B5:B35="M"), FAUX))), "Pas de résultats")

Bonjour,
Pour le principe :

=LET(
ch; H2;
r; A5:I35;
f; B5:B35;
a; FILTRE(r; (f="A") + (f="C") + (f="M"));
b; FILTRE(r; (f="C") + (f="M"));
c; FILTRE(r; (f="M"));
SI.CONDITIONS(ch = 1; a; ch = 2; b; ch = 3; c))

Cdlt.

Re gribouille75,

Essaie cette formule matricielle dynamique :

=FILTRE(A4:I36; ESTNUM(EQUIV(B4:B36; CHOISIR(H2; {"A";"C";"M"}; {"C";"M"}; {"M"}); 0)))

Ou cette macro événementielle dans le module de la Feuil1 :

Sub Worksheet_Change(ByVal Target As Range)
    Dim Critere

    ' Vérifiez si la cellule modifiée est H2
    If Not Intersect(Target, Me.Range("H2")) Is Nothing Then
        ' Sélectionnez les critères en fonction de la valeur de H2
        Select Case Me.Range("H2").Value
            Case 1: Critere = Array("A", "C", "M")
            Case 2: Critere = Array("C", "M")
            Case 3: Critere = Array("M")
            Case Else: Critere = ""
        End Select

        ' Si la feuille est filtrée, réinitialisez le filtre
        If Me.FilterMode Then Me.ShowAllData

        ' Appliquez le filtre avec les critères sélectionnés
        Me.Range("A4:I36").AutoFilter Field:=2, Criteria1:=Critere, Operator:=xlFilterValues
    End If
End Sub

klin89

Bonjour, je suis passé par la formule matricielle de klin89. J'ai dû réadapter mon tableau car plusieurs choses n'allaient plus ( formatage, tous les "0" au lieu des colonnes vides, un double tableau dans ma feuille, etc ... ) mais je me suis adapté.

Merci en tout cas pour votre aide précieuse et votre temps.

Rechercher des sujets similaires à "filtre affichage ligne"