Créer plusieurs filtre par ligne

Bonjour à tous,

Je désire créer un tableau me permettant de pouvoir sélectionner suivant l'entreprise (par exemple), les produits qu'ils fabriquent.

Exemple:

  • L'entreprise A fabrique des jeans, des polos et des vestes.
  • L'entreprise B fabrique des tee-shirt et des vestes
  • L'entreprise C fabrique des jeans uniquement

J'aimerais avoir un filtre qui puisse me permettre de disons vouloir choisir entre toutes les entreprises uniquement celles qui fabriquent des vestes. (dans ce cas uniquement A et B )

Le but est donc de voir a l'écran uniquement ces deux lignes (ou entreprises)

Je connais la fonction filtre mais lorsqu'il y'a plusieurs filtres pour une même ligne, comment faire ? Est-ce possible pour vous ?

J'attends vos retours et vous remerciant par avance pour votre aide à venir !!!

PS : Petit exemple visuel en PJ

capture d ecran 2019 03 14 a 12 41 38

Bonjour,

comment est structuré ta base de données ?

as-tu un fichier excel ?

Merci pour votre réponse rapide, mais je n'ai pas de base de données.

Cela sera sur une centaine de fournisseurs ayant des produits très différents et donc je désirerai créer de nombreuses familles pour m'y retrouver très rapidement.

Mon fichier Excel est le même pour l'instant car je désire apprendre à le faire sur une page nouvelle avant de l'incrémenter a ma base avec l'intégralité des fournisseurs que je devrai référencer par moi même.

C'est un petit peu comme un questionnaire a choix multiples mais avec l'histoire des filtres de chez excel.

J'espère vous avoir éclairé pour répondre à ma demande.

Et une nouvelle fois merci à vous

3exemple.xlsx (31.99 Ko)

bonjour

salut Steelson

saisie en Tableau ou Liste

puis un TCD servant à afficher et à filtrer

amitiés à tous

Merci Jmd,

Le seul soucis c'est que j'aurais créer plusieurs dizaines de familles et les associer à chaque entreprise. L'idée est bonne que vous me proposer mais serait beaucoup trop longue et non pertinent visuellement pour nous malheureusement...

Le but n'est pas que cela s'affiche uniquement en phase recherche pour filtre.

Il faut un CRM pour ça au final je suppose ....

capture d ecran 2019 03 14 a 15 19 52

Merci pour votre réponse rapide, mais je n'ai pas de base de données. ...

C'est un petit peu comme un questionnaire a choix multiples mais avec l'histoire des filtres de chez excel.

je veux bien faire un essai avec des filtres ... mais ton fichier est vide

peux-tu mettre quelques données ?

bonjour jmd

Un exemple ...

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
' Exit Sub ' à démaquer le temps de la mise en place des onglets
    If Sh.Name <> "data" Then
        Sheets("data").Cells(Rows.Count, 1).End(xlUp).CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Sh.Range("A1").CurrentRegion, CopyToRange:=Sh.Range("A4").CurrentRegion.Resize(1), Unique:=False
    End If
End Sub

J'ai essayé de créer un peu l'exemple comme vous me l'aviez demandé mais ne sachant pas faire c'est bien pour ça que je me tourne vers des experts pouvant m'apprendre tel que vous.

Voici un "exemple" même si je n'arrive pas à faire tel que je souhaite

Merci à vous

5exemple.xlsx (36.90 Ko)

Merci Jmd,

Le seul soucis c'est que j'aurais créer plusieurs dizaines de familles et les associer à chaque entreprise. L'idée est bonne que vous me proposer mais serait beaucoup trop longue et non pertinent visuellement pour nous malheureusement...

Le but n'est pas que cela s'affiche uniquement en phase recherche pour filtre.

Il faut un CRM pour ça au final je suppose ....

re

je ne comprends pas la notion de "trop longue"

quoi qu'il arrive, tu seras obligé de faire cette saisie, sous une forme ou une autre

concernant une éventuelle CRM, il est certain qu'un progiciel sera bien supérieur

note qu'aucun progiciel n'est basé sur un tableur

note aussi que ma proposition fonctionne comme fonctionne un progiciel, c'est pourquoi elle est simple et efficace, même en restant sur Excel.

à te relire

Bonjour,

@ charlu92

Quand je vois ta copie d'écran, je pense que tu travailles sous Mac. Précise le !...

Cdlt.

Bonjour @Jean-Eric

Je n'ai pas précisé que je suis sur Mac ou PC puisque je dispose des deux Mac et PC avec des versions anciennes et récentes. Donc en fonction je m'adapte à toutes vos réponses afin d'être très large si l'un ne marche pas

Voici un "exemple" même si je n'arrive pas à faire tel que je souhaite

En retour

Sub filtrer()
    Range("Tableau1[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:A2"), Unique:=False
End Sub
Sub afficher()
    ActiveSheet.ShowAllData
End Sub
5exemple.xlsm (18.44 Ko)

Même si ce n'est pas en panneau déroulant c'est déjà super comme résultat !!!! Franchement Wow ! Merci beaucoup je vais essayé d'exploiter cela,

Mille mercis Steelson !

Je peux mettre une liste déroulante en plus ... je vais voir cela plus tard !

Re,

Une autre proposition pour les versions récentes d'Excel sous Windows.

Cdlt.

4charlu92.xlsm (30.54 Ko)

Même si ce n'est pas en panneau déroulant...

Cette fois-ci c'est en menu déroulant (comme Jean-Eric que je salue ... pourquoi version récente ?)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim dico As Object, terme1() As Variant, terme2 As Variant, i%, j%

    If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub

    Set dico = CreateObject("Scripting.Dictionary")
    terme1 = Range("Tableau1[" & [A1] & "]").Value
    For i = LBound(terme1) To UBound(terme1)
        terme2 = Split(terme1(i, 1) & " ", " ")
        For j = LBound(terme2) To UBound(terme2)
            If Len(terme2(j)) > 2 Then
                dico(terme2(j)) = ""
            End If
        Next
    Next
    If dico.Count > 0 Then
        Target.Validation.Delete
        Target.Validation.Add xlValidateList, Formula1:=Join(dico.keys, ",")
    End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
    If Target.Value = "" Then ActiveSheet.ShowAllData
    If Target.Value <> "" Then Range("Tableau1[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:A2"), Unique:=False
End Sub

Bonjour,

Bonjour Steelson,

En rapport avec ma demande et la réponse de Charl92 !...

Bonjour @Jean-Eric 
Je n'ai pas précisé que je suis sur Mac ou PC puisque je dispose des deux Mac et PC avec des versions anciennes et récentes. Donc en fonction je m'adapte à toutes vos réponses afin d'être très large si l'un ne marche pas

Bonjour

Bonjour Jean-Eric

Une amélioration, j'ai trié la liste déroulante

Rechercher des sujets similaires à "creer filtre ligne"