MACRO ? Bouton pour regrouper des données
Bonsoir à tous,
J'ai une petite galère avec mes formules excel.
je vous montre un tableau fictif (qu'on nomme Tab1) de ma situation (j'ai plus de données que ça mais grosso-merdo, le tableau ressemble à ce qui suit) :
| NOM de l'agent | Fonction | Secteur | Projet | |
| Madame X | Chef de projet | Secteur 2 | .... | .... |
| Madame Y | Assistante | Secteur 2 | .... | .... |
| Monsieur D | Comptable | Secteur 1 | .... | .... |
| Monsieur J | Technicien | Secteur 3 | .... | .... |
| Monsieur L | Chef de projet | Secteur 4 | .... | .... |
| Monsieur K | Responsable RH | Secteur 1 | .... | .... |
| Madame B | Consultant | Secteur 2 | .... | .... |
Donc j'ai une base de données comme ça qui utilise des menus déroulants pour toutes les colonnes sauf "Mail" et "NOM de l'agent". On souhaite les données via la colonne "SECTEUR" où on spécifie le numéro de secteur qui nous intéresse.
Ce que je cherche à faire, c'est que lorsqu'une personne ouvre le fichier excel, la première feuille soit une sorte de boite de dialogue (?) qui permettrait à la personne ayant ouvert le fichier de sélectionner dans un menu déroulant le secteur qui l'intéresse, de valider son choix en cliquant sur un bouton, et qu'elle soit renvoyée sur une feuille qui regroupe toutes les personnes du secteur sélectionné avec les infos correspondantes
Ma formule actuelle pour faire apparaitre toutes les personnes du même secteur sur une autre feuille est :
=FILTRE(Tab1;Tab1[Secteur]="Secteur XX")
Cette formule marche, c'est-à-dire que quand je renseigne le numéro de secteur au lieu des "XX" Excel me regroupe bien toutes les données correspondant au secteur mentionné sur la feuille où j'ai indiqué la formule.
Sauf que cela pousse un autre agent de l'écrire à chaque fois pour le secteur qui l'intéresse et ma responsable voudrait que ce soit sous la forme d'un choix déroulant avec bouton qui permettrait juste de sélectionner le secteur sur une liste déroulante et voir apparaitre toutes les lignes correspondant au secteur sélectionné sans que l'agent ait à passer par cette formule.
Sauf que je ne maitrise pas au top les MACRO ou VBA donc je n'arrive pas à inclure sur Excel un semblant de programme permettant de faire ça...
Si quelqu'un a eu le courage de me lire jusqu'ici ainsi qu'eût la superbe capacité à comprendre mon souci, pourrait-il/elle m'aider sur le sujet ?
Merci par avance,
Kth.
Bonsoir,
avez-vous essayé avec une liste de choix ? Par exemple une liste de choix avec tous les secteurs, ça vous savez le faire, cette liste se trouve sur la feuille (par exemple) Accueil en cellule A3, votre formule deviendrait alors : =FILTRE(Tab1;Tab1[Secteur]=Accueil!A3),
et si cela ne marche pas vous pouvez essayez avec INDIRECT : =FILTRE(Tab1;Tab1[Secteur]=INDIRECT(Accueil!A3))
@ bientôt
LouReeD
Bonjour
Si tu as la fonction FILTRE c'est que ta version n'est pas 2016 mais 365. Alors met ton profil à jour
Si tu fais une liste des secteurs en feuille Choix, cellule B5, modifie ta formule en
=FILTRE(Tab1;Tab1[Secteur]=Choix!B5)
HA !? Moi je suis plus sur du A3... ce doit être mon coté papetier ! Pas peu fier le papetier !
C'est bien ce qui me semblais que je ne pouvais pas tester cette formule !
@ bientôt
LouReeD
Tout d'abord, merci pour vos réponses
J'apporte 2 précisions :
En effet, mon profil actuel précise mon ancienne version Excel que j'ai changé entre temps, je veillerai à le mettre à jour
Au boulot, le PC que j'utilise n'a qu'Excel 2013, je ne peux même pas utiliser la fonction filtre comme testé sur mon PC personnel
Devant utiliser Excel 2013, j'utilise la l'outil "Filtre avancé" dans l'onglet DONNÉES mais il ne fonctionne pas...
Après avoir définie ma plage de donnée (qui est mon tableau) ainsi que ma zone de critère (je filtre sur une colonne seulement), Excel ne me copie pas toutes les lignes correspondantes au critère sélectionné. Il ne m'affiche qu'une seule ligne pour un autre service en plus
Exemple si je dis au filtre avancé de me faire apparaître les agents du service 4, il m'affiche un agent du service 3 et c'est toujours le même qui apparaît peu importe le service que je renseigne dans ma zone de critère....
j'ai commencé à écrire une macro en passant par le filtre avancé mais il ne fonctionne même pas en manuel, je ne sais pas quoi faire à part m'arracher les cheveux 😣
j'ai fouillé sur internet pour voir les éventuels coquilles de cette technique (je le suis inspirée de la vidéo de Learnaccess qui s'intitule "Excel VBA réaliser vos filtrages de données automatiquement") que je trouve très bien faite mais qui ne marche pas de mon côté
si ça ne vous parle pas, je pourrais mettre ce soir le scénario fictif du soucis si je trouve un peu de temps
Bonjour
Peux-tu installer l'add on PowerQuery au boulot ou bien, en plus d'avoir une version datant de plus de 7 ans, ils ne veulent pas bénéficier des add on Microsoft ?
Le filtre avancé fonctionne parfaitement : tu as du faire un erreur mais comme tu ne joins pas de fichier...
On ne sait ni le nom de la feuille où on choisit ni la cellule où on choisit...
Je vous joins mon fichier où j'ai remplacé les données confidentielles mais le problème persiste.
Au boulot, je n'avais que la première ligne du tableau qui s'affichait peu importe le critère choisi, et là, avec mon PC perso j'ai le message d'erreur "Le nom de champ est incorrect ou manquant dans la zone d'extraction". J'ai bien fait attention à ce que les en-têtes de ma zone de critères soient un copier-coller de ma zone d'extraction et j'ai utilisé des listes déroulantes par colonne pour être sûre de ne pas écrire de manière différente une même donnée mais rien n'y fait. J'ai eu ce premier message d'erreur au boulot au début puis après avoir corrigé les en-têtes, seul la première ligne du tableau ressortait.
Pour les add on PowerQuery, je vous avouerai ne jamais les avoir utiliser donc j'ignore leur portés. Ce fichier Excel a pour vocation d'être accessible par tous les secteurs sur un réseau partagé, je ne voudrais donc pas qu'il y ai des soucis de comptabilité
Parce qu'après ça, j'avais rédigé la macro suivante (juste pour le critère Secteur) :
***
Sub FiltreData()
FiltreData Macro
Sheets ("Base de données Starters"). Range ("DATA(#All)").AdvancedFilter Action:= _
xlFilterCopy , CriteriaRange:= Range (" 'Endroit extraction'! Criteria), _ CopyToRange:=Range (" 'Endroit extraction'! Extract"), Unique: False
Range("B4"). Select
End Sub
***
Je préfèrerais enregistrer la macro pour être sûre qu'elle fonctionne mais déjà manuellement je n'arrive pas à avoir ce que je veux...
RE
Tu n'as pas répondu à ma question à propos de PowerQuery...
Déjà ta feuille ne s'appelle pas Accueil mais Endroit extraction
Ta zone d'extraction est définie A$8:$J$39
- soit 10 colonnes alors que tu n'as que 8 colonnes
- soit 31 lignes ce qui limite de facto le résultat : on prend soit des colonnes entières soit une unique ligne de titres qui n'existe pas dans ta feuille, pas un nombre de lignes au hasard