Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Afficher les données en fonction de la liste déroulante [XL-2013]


Sujet :

Excel

  1. #1
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut Afficher les données en fonction de la liste déroulante
    Bonjour à tous,

    J'ai crée une liste déroulante, et j'aimerai quand je sélectionne une donnée dans ce liste seules les info de cette donnée apparaît.

    J'ai crée deux listes déroulante ( une liste pour les années et l'autre pour les mois), l'idée est que par exemple si dans ma liste je sélectionne 2019 pour les année et décembre pour le mois, seuls les données de décembre 2019 s'afficheront ( un peu comme un tableau croisé dynamique)



    Merci à tous de votre aide,

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    octobre 2013
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2013
    Messages : 181
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    Si c'est un peu comme un TCD, alors pourquoi ne pas faire un TCD ?
    Si ce n'est qu'une question de mise en forme pour que ce soit joli, il y a la possibilité d'utiliser les segments également.

  3. #3
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut
    Merci pour votre réponse.


    Je ne souhaite pas passé par un TCD car il réponds pas à ce que je veux faire sur le reste des données.


    D'autres solutions svp?

  4. #4
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    janvier 2011
    Messages
    1 538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : janvier 2011
    Messages : 1 538
    Points : 4 037
    Points
    4 037
    Par défaut
    Salut,

    Ce que veux faire, c'est une formule de filtre ... en plus sur deux critères ... ce qui compléxifie le problème.

    Je te propose une alternative.
    Tu actives la fonction "Tableau" sur ton tableau à filtrer.
    Pour faire çà. Place toi dans ton tableau. Dans l'onglet "Accueil" Mettre sous forme de tableau. Tu choisis une mise en forme.
    Pour en savoir plus sur le sujet :
    https://fauconnier.developpez.com/tu...ux-structures/

    Une fois cette étape faite
    Tu as un onglet supplémentaire "Création" et dans cet onglet une commande "Segment"
    En cliquant tu dois voir apparaître la liste de tes colonnes et donc les mois et années. Tu les coches et ces "outils graphique" permettent très facilement de filtrer ton tableau.

    J'ajoute que quand tu sélectionne un de ces segments, tu as aussi un nouvel onglet qui te permet de personnaliser la présentation des ces éléments.

    En espérant que cette piste peut te convenir.

    GG
    Jérôme

    " Je pense donc je suis. Tu es donc j'apprends ". (GCM)

    Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .

  5. #5
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut
    Bonjour à tous,

    la solution de Jérôme ne corresponds pas tout à fait à ce que je souhaite, du coup, je me permets de relancer à nouveau la discussion en espérant avoir la solution miracle.

    Je joins mon fichier Excel peut-être que cela pourrait être plus facile à comprendre ce que je souhaite faire.



    Merci à tous de votre aide,
    Fichiers attachés Fichiers attachés

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 889
    Points : 40 992
    Points
    40 992
    Billets dans le blog
    61
    Par défaut
    Salut.

    Pourtant, je la trouve chouette, la solution de Jérôme...

    Nom : 2019-12-10_121519.png
Affichages : 35
Taille : 67,4 Ko


    Nom : 2019-12-10_121545.png
Affichages : 33
Taille : 28,7 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre expert Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    décembre 2013
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2013
    Messages : 1 901
    Points : 3 194
    Points
    3 194
    Par défaut
    c'est une audace de répondre après Pierre Fauconnier (bonjour au passage)
    mais pour une raison que j'ignore vous voulez passer par VBA, voila un bricolage d'un débutant à tester avec prudence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub filtrerDonnées()
    Dim F As Worksheet
    Dim I As Long
     Application.ScreenUpdating = False
     Set F = Sheets("Suivi insatisfactions")
     With F
        If Not .AutoFilter Is Nothing Then
          If .FilterMode Then .ShowAllData
          .AutoFilter.Range.AutoFilter
        End If
    I = .Cells(Rows.Count, 3).End(xlUp).Row
    .Range("A9:M" & I).AutoFilter field:=1, Criteria1:=F.Cells(1, 3)
    .Range("A9:M" & I).AutoFilter field:=2, Criteria1:=F.Cells(2, 3)
    End With
     Application.ScreenUpdating = True
    End Sub
    Fichiers attachés Fichiers attachés
    -----------------------------------------------*****-------------------------------------------------------------------------------------------
    you don't have to be muslim to support the Palestinian people you just have to be human
    Vous ne devez pas être musulman pour soutenir le peuple palestinien, vous devez juste être humain

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 889
    Points : 40 992
    Points
    40 992
    Billets dans le blog
    61
    Par défaut
    Salut

    Citation Envoyé par BENNASR Voir le message
    [...]
    Chaque solution a ses avantages et ses inconvénients. La tienne, que je n'ai pas testée mais je suppose que tu l'as fait, peut s'intégrer dans un process VBA plus long et a donc tout son intérêt.

    On pourrait également s'orienter vers les filtres avancés, voire vers Power Query (qui dupliquerait les données filtrées). Tout dépend du projet dans lequel ce filtre vient prendre place

    Toute approche valable a sa raison d'être et la diversité des réponses permet au demandeur de choisir ce qui lui convient le mieux (Donc, pour ta solution )
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    ...mais pour une raison que j'ignore vous voulez passer par VBA, voila un bricolage d'un débutant à tester avec prudence :

    Bonjour,

    Je ne souhaite pas passer par VBA car je ne connais pas du tout VBA


    Merci quand même pour la réponse je vais essayer de regarder ça

  10. #10
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut
    Le code marche très bien je te remercie beaucoup, juste une petite problématique c'est qu'avec ce code je ne peux pas dé"filtrer"

    Je m'en excuse de toutes ces questions ( dû à mon niveau médiocre sur VBA)

    Merci de l'aide

  11. #11
    Membre expert Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    décembre 2013
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2013
    Messages : 1 901
    Points : 3 194
    Points
    3 194
    Par défaut
    à tester
    Fichiers attachés Fichiers attachés
    -----------------------------------------------*****-------------------------------------------------------------------------------------------
    you don't have to be muslim to support the Palestinian people you just have to be human
    Vous ne devez pas être musulman pour soutenir le peuple palestinien, vous devez juste être humain

  12. #12
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    dans la dernière solution donnée, le filtrage marche très bien mais à chaque fois que je cliques sur "défiltrer" ça me met une fenêtre pour débogage.

    Ci joint capture écran


    Pouvez-vous m'aider s'il vous plait? MerciNom : Capture défiltrage.PNG
Affichages : 25
Taille : 33,9 Ko

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 889
    Points : 40 992
    Points
    40 992
    Billets dans le blog
    61
    Par défaut
    Vu que tu utilises un tableau structuré, tu dois utiliser le ShowAllData du tableau, et non celui de la feuille (car il n'y en a pas sur la feuille).

    Voici un code qui défiltre le premier tableau structuré de la feuille 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil1.listobjects(1).AutoFilter.ShowAllData
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut
    Merci pour la réponse.

    Cela ne donne rien.

    Je précise que le premier code, défiltre sur le premier coup après ouverture de fichier mais si essaye de défitrer les fois suivantes ça plante

  15. #15
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 889
    Points : 40 992
    Points
    40 992
    Billets dans le blog
    61
    Par défaut
    Donne le code que tu utilises, sinon, nous ne saurons pas t'aider. Il faut évidemment adapter le code que je t'ai donné à ta situation (nom de la feuille, ...).

    A ce stade de tes connaissances en VBA (ce n'est pas une attaque personnelle), tu gagnerais à utiliser les outils natifs d'Excel (notamment les segments comme le propose Jérôme et comme je l'ai illustré), plutôt que te lancer dans du VBA pour réinventer la roue, surtout dans des délais de réalisation aussi courts.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  16. #16
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut
    Tu as raison et t'inquiète pas je ne le prends pas du tout comme une attaque personnelle, au contraire je me sens gêné plus qu'autre chose...

    Le code initial ( ou le deflitrage fonctionne que la première fois)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub DefiltrerDonnées()
    With ActiveSheet
        ' Supprimer le filtre actuel quel que soit l'endroit où il se trouve
       If .FilterMode Then .ShowAllData
    End With
    End Sub
    Après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Suiviinsatisfactions.listobjects(1).AutoFilter.ShowAllData

  17. #17
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 889
    Points : 40 992
    Points
    40 992
    Billets dans le blog
    61
    Par défaut
    Dans la configuration qui me semble être celle de ton classeur (cfr tes autres discussions), je doute que ShowAllData sur une feuille qui n'est pas filtrée fonctionne.

    Cela étant, voici un code générique qui reçoit une feuille de calcul en argument, et qui libère tous les filtres de la feuille, qu'ils soient de feuille ou de tableau structuré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub ShowAllData(sh As Worksheet)
      Dim ls As ListObject
     
      If sh.FilterMode Then sh.ShowAllData
      For Each ls In sh.ListObjects
        ls.AutoFilter.ShowAllData
      Next
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  18. #18
    Membre régulier
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    juin 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2014
    Messages : 173
    Points : 71
    Points
    71
    Par défaut
    Merci aussi pour ton aide. TOP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Afficher des variables en fonction d'une liste déroulante ou de checkbox
    Par sedalc dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/07/2015, 18h30
  2. [WD-2010] Afficher un texte en fonction d'une liste déroulante
    Par fmailys dans le forum VBA Word
    Réponses: 3
    Dernier message: 07/09/2014, 14h55
  3. Afficher les données sous forme d'une liste
    Par j-gat dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 28/11/2010, 16h40
  4. Réponses: 5
    Dernier message: 16/02/2009, 13h05
  5. [MySQL] Une liste déroulante affichant les données d'une requête SHOW par ordre alphabétique
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/12/2005, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo