IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Macros et VBA Excel Discussion :

Filtrer tableau dans une feuille en fonction choix unique ou multiple checkbox userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut Filtrer tableau dans une feuille en fonction choix unique ou multiple checkbox userform
    Bonjour,
    J'ai essayé de tout dire dans mon titre
    Afin d'éviter de passer des heures à écrire un code à rallonge, je me tourne vers vous car je suis persuadée que vous saurez trouver la solution

    A partir de cases à cocher insérées dans un UF, je souhaiterais filtrer un tableau dans une feuille.
    Voici le UF :
    Nom : UF.png
Affichages : 293
Taille : 9,5 Ko

    Si on coche "Tous" à gauche, je souhaiterais que tous les métiers soient cochés, idem sur "Tous" pour les villes, ou bien qu'on puisse choisir que quelques métiers ou que quelques villes, etc. et que mon tableau se filtre par la même occasion.

    J'ai commencé à écrire ceci, mais vous imaginerez bien que le temps d'écrire toutes les conditions seraient monstrueux et débile alors que je suis certaine qu'il doit il y avoir plus court, mais je ne trouve pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Méca_click()
     
     With Sheets("Feuil1")
      If Méca * Infor * Coiff * Cond * Elec * Menui * Nett * Boul * Bouch Then
       ActiveSheet.ListObjects("Tableau5").Range.AutoFilter Field:=8
       Exit Sub
        If Méca * Elec Then
             ActiveSheet.ListObjects("Tableau5").Range.AutoFilter Field:=8, Criteria1:="=Méca", Operator:=xlOr, Criteria2:="=Elec"
             ' etc...........
             Exit Sub
        End if
     End With
    End Sub
    Merci beaucoup pour votre aide

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Plutôt que de passer par VBA, si vous utilisez les tableaux structurés, les segments font exactement ce que vous attendez

    Illustration

    Nom : 240430 Filtre Segments.png
Affichages : 257
Taille : 34,2 Ko
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    aaah mais oui ça semble génial !
    comment fait-on ?
    si vous avez un lien pour tuto je suis preneuse, mais je vais également chercher de mon côté
    merci beaucoup !!!

  4. #4
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Ce qui semble embêtant en revanche c'est qu'il faille créer des TCD car les segments ne fonctionnent pas sur plusieurs tableaux structurés. Je ne souhaite pas créer des TCD car j'ai besoin d'utiliser mes tableaux structurés qui contiennent des commentaires, etc.

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    si vous avez un lien pour tuto je suis preneuse, mais je vais également chercher de mon côté
    Voici le lien pour Apprendre à utiliser les tableaux structurés Excel : création, manipulations et avantages(1)

    En pièce jointe le classeur avec tableau structuré + segments qui était illustré dans ma réponse précédente
    Fichiers attachés Fichiers attachés
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Merci c'est gentil.
    Seulement embêtant de devoir faire plusieurs TCD car un segment ne peut pas croiser les données de plusieurs tableaux structurés

    Si possible, sauriez-vous reprendre mon code ?

    Merci

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Seulement embêtant de devoir faire plusieurs TCD car un segment ne peut pas croiser les données de plusieurs tableaux structurés
    Il est possible de
    • réunir plusieurs tables en une seule avec Power Query
    • piloter plusieurs tcd avec un ou plusieurs segments
    • faire un tcd basé sur plusieurs tableaux

    Sans connaître les tenants et aboutissants, c'est difficile d'apporter une réponse pertinente.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Bonjour,
    Je reviens vers vous tardivement toutes mes excuses, mon projet pro était en suspend.
    Je suis bien embêtée d'utiliser des segments car s'appliquent sur des TCD et je dois garder mes tableaux structurés.
    J'aimerais vraiment passer par une macro comme celle que j'ai commencé, mais des vrais experts doivent savoir comment écrire le code en très peu de lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Méca_click()
     
     With Sheets("Feuil1")
      If Méca * Infor * Coiff * Cond * Elec * Menui * Nett * Boul * Bouch Then
       ActiveSheet.ListObjects("Tableau5").Range.AutoFilter Field:=8
       Exit Sub
        If Méca * Elec Then
             ActiveSheet.ListObjects("Tableau5").Range.AutoFilter Field:=8, Criteria1:="=Méca", Operator:=xlOr, Criteria2:="=Elec"
             ' etc...........
             Exit Sub
        End if
     End With
    End Sub
    Help me please

    Merci beaucoup par avance !

    Mél

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je suis bien embêtée d'utiliser des segments car s'appliquent sur des TCD et je dois garder mes tableaux structurés.
    Les segments peuvent être utilisés aussi bien pour les TCD que pour les tableaux structurés. Si vous avez lu avec attention le tutoriel que j'ai référencé c'est bien expliqué au chapitre IV-B-2-d. Insérer un segment
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  10. #10
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Bonjour Philippe,

    Merci pour votre retour.
    J'ai bien lu et les segments peuvent bien s'adapter qu'à plusieurs TCD mais pas à plusieurs tableaux structurés malheureusement, seulement 1, sinon je dois faire autant de segments que j'ai de tableaux structurés
    Pouvez-vous revenir vers moi avec un joli code ? je n'arrive vraiment pas à trouver sur le Net

    Merci beaucoup

    Mél

  11. #11
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour à tous

    Pour commencer il est important de nommer les tableaux avec des noms signifiants : j'ose espérer que tes classeurs ne se nomment plus Classeur1, Classeur2 avec des onglets Feuil1, Feuil2...

    Et comme expliqué dans le billet de Pierre sur le traitement VBA des tableaux
    https://fauconnier.developpez.com/tu...structuresvba/
    il est inutile de préciser l'emplacement du tableau (ni feuille, ni ligne, ni colonne) : Excel sait tout cela avec le nom seulement...

    Mais pour répondre à ta question de façon précise il faudrait connaître les noms et les structures (colonnes) des tes divers tableaux...

  12. #12
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Bonjour Chris,

    Merci pour l'attention portée à mon sujet.

    Mon classeur se nomme : Suivi dossiers

    Les Noms de mes tableaux situés dans la feuille nommée "Compte-Rendu" :

    Tbl_NewConsult
    Tbl_EnAttente
    Tbl_Suivi
    Tbl_Pluri

    Ces 4 tableaux ont tous les 4 les colonnes suivantes dans cet ordre :
    "Envoyé à" "Client" "N°" "Intitulé" "Type" "Date début" "Date fin" "Activité" "Lieu" "Observations"


    Merci beaucoup

    Mél

  13. #13
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour à tous

    Question bête : envisager un seul tableau unique avec une colonne supplémentaire Etat (ou autre appellation) contenant selon la ligne NewConsult ou EnAttente ou Suivi ou Pluri peut être envisageable ?

    Sinon un solution que j'utilise : rassembler ces 4 tableaux via une requête et placer uniquement les 2 champs de choix (Ville et métier) dans un TCD associé à 2 segments : ce qui permet de définir les filtres voulus en filtre avancé très rapide

    Boucler sur les 4 tableaux pour appliquer ces filtres

    Cependant tu indiques avoir ces 4 tableaux sur le même feuille : ils sont donc l'un sous l'autre ?

    As-tu d'autres tableaux dont le nom commence par Tbl_ ?

  14. #14
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Bonjour

    Tout d'abord je n'ai bien que ces 4 tableaux commençant par Tbl_
    Ils se trouvent les uns en dessous des autres en effet.
    Entre chaque tableau il y a des titres.

    Les sujets à l'intérieur des tableaux sont évolutifs. Par exemple une ligne du Tbl_NewConsul passera à Tbl_EnAttente ou directement à Tbl_EnSuivi.

    Toute cette complexité par soucis de présentation.

    Le contenu de cette feuille est copié et collé toutes les semaines dans un mail et envoyé à un nombre important de collaborateur.

    Merci

  15. #15
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Salut,
    Citation Envoyé par Mél3790 Voir le message
    Les sujets à l'intérieur des tableaux sont évolutifs. Par exemple une ligne du Tbl_NewConsul passera à Tbl_EnAttente ou directement à Tbl_EnSuivi.
    Est ce que cela veux dire que tu coupes / colles des lignes d'un tableau vers un autre ?

    Si oui, je pense qu'il y a mieux à faire:
    1 tableau (dans une feuille cachée) contenant tes données sources, avec une colonne "Status" où chaque ligne aura la valeur "Nouveau" ou "En attente" ou "En consultation".
    Des requêtes (Power Query) prendrons en charge de "dispatcher" les lignes dans les tableaux finaux.
    Tu te contentes de manipuler la colonne "Status" et actualiser les requêtes.

  16. #16
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Bonjour

    ça semble pas mal comme "tricherie" :p

    toutefois pour cette partie "Des requêtes (Power Query) prendrons en charge de "dispatcher" les lignes dans les tableaux finaux." je ne sais pas faire

  17. #17
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Une solution à ta question initiale

    Concernant l'idée de deedolith, qui rejoint ma question bête du 30/08/2024 et je confirme que couper coller n'est pas une bonne pratique

    A noter qu'Excel n'aime pas trop les tableaux issus de requêtes placés les uns sous les autres avec d'autres infos intercalées et a tendance à désaligner tout cela.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2010] Déplacement de Tableau dans une Feuille
    Par ARTHUR42 dans le forum Excel
    Réponses: 2
    Dernier message: 09/09/2012, 21h15
  2. Réponses: 10
    Dernier message: 27/08/2010, 11h04
  3. [Toutes versions] Copier le contenu d'un tableau dans une feuille de calcul
    Par Heureux-oli dans le forum Contribuez
    Réponses: 0
    Dernier message: 25/04/2009, 20h08
  4. [XL-2003] Trié un tableau dans une feuille de calcul lors de son ouverture
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/04/2009, 15h27
  5. Changement dans une feuille en fonction de 2 valeurs
    Par delph_le dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/06/2008, 15h24

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