Excel : comment réorganiser un tableau de façon dynamique ?
cousinhub29 Messages postés 1074 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite qu'à partir d'une colonne remplie au fur et à mesure, sur une autre feuille soient affichées les données.
En version simplifiée 1 :
En clair et version simple, Sur une feuille "données" en face d'une liste de noms dans la colonne A, je vais entrer une catégorie de de 1 à 8 dans la colonne "Z". Je voudrais que cela alimente un tableau sur une autre feuille "résultat" avec en entête de colonne les chiffres 1 à 8 et les noms correspondants dans ces colonnes. Le tout de manière dynamique, si on retire une catégorie au nom, il disparait de la colonne ou inversement quand on lui attribue une catégorie, il vient s'incrémenter dans la colonne.
En version 2 :
Et si c'est possible pour aller plus loin, je voudrais que dans la feuille "résultat" on puisse y importer plusieurs colonnes en fonction toujours de ce critère de catégorie de 1 à 8. Par exemple la colonne A "nom", suivi de la colonne "B" prénom" etc...Dans ce cas là, la colonne critère deviendrait une étiquette du tableau qui permettrait de sélectionner la catégorie pour afficher ses données dessous.
Avec le tableau croisé dynamique, je ne trouve que des comptages mais pas l'affichage par colonne des noms.
Merci d'avance pour l'aide
Windows / Chrome 111.0.0.0
- Excel : comment réorganiser un tableau de façon dynamique ?
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
13 réponses
Bonjour,
Une solution par le biais de Power Query (PQ) serait envisageable, selon la version Excel utilisée...
Si version >= à 2010 et <2016, il faudra télécharger un Add-On gratuit sur le site de µSoft.
Si version >= à 2016, PQ est en natif.
Cependant, pour répondre au plus près, si tu pouvais joindre un fichier exemple, exempt de toutes données confidentielles, via le site cjoint.com, ce serait plus facile pour t'aider.
@ te relire (avec ta version Excel...)
Bonjour et merci pour cette réponse rapide.
J'ai bien la version avec Power Querty, de ce côté aucun souci.
Pour joindre un fichier fictif excel, il n'y a que cjoint.com ? Il demande mon numéro de CB !
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionEuh, je l'utilise régulièrement, et on ne m'a jamais demandé de CB...
Tu cliques sur le bouton "Parcourir", tu choisis ton fichier, puis tu cliques sur "Créer le lien Cjoint", sans autre choix (pas d'adresse mail pour le suivi....)
Tu copies le lien, et tu le colles ici, c'est tout
ca y est, j'ai trouvé, enfin j'espère !
Il faut être vigilant, c'est très piégé cette page.
https://cjoint.com/c/MDmoAY2AJzk
Mon idée est que l'on remplisse la colonne O "div 2023-2024" dans l'onglet "base initial" pour définir la division et que cela incrémente le nom et le prénom sur une autre feuille un tableau avec en entête de colonne "1" , "2" , "3" jusqu'à "8".
ou sur une autre feuille, que je puisse mettre une étiquette "div 2023-24" avec filtre sur la feuille (comme dans un TC Dynamique) en gardant un tableau en dessous avec toutes les infos. J'avais en mémoire qu'en double cliquant cela générait automatique une feuille par donnée. C'est à dire qu'on aurait une feuille 1, feuille 2, feuille 3. Ensuite en les sélectionnant toutes, on peut les imprimer en une seule fois et sans passe par la méthode des sous totaux
Bonjour.
J'ai bien peur que pour réaliser l'ensemble des fonctionnalités que tu souhaites, il te faudra passer par un script VBA afin de créer une macro !
Re-,
Je dois dire que je ne vois pas trop ce que tu voudrais...
Est-ce que tu pourrais mettre un fichier résultat (juste un onglet, avec le tableau de rendu que tu désires, sur quelques lignes uniquement)
Ou avec un 2ème onglet, avec donc le tableau d'une division (la 1 par exemple)
Quelles données veux-tu conserver?
J'ai vu que tu avais commencé une requête PQ, mais je pense que tu n'as pas été au bout de tes souhaits...
@ Raymond, il existe depuis quelques années un outil hyper puissant qui peut (parfois) remplacer avantageusement le VBA. Il s'agit de Power Query (qui a donc la particularité de ne pas être systématiquement bloqué par les différents systèmes de sécurité de plus en plus réticents au VBA). Je ne dis pas que je vais forcément y arriver, mais dès que j'aurai un peu la trame, et le résultat désiré, je vais essayer...
Bonne soirée
Re,
Je suis allée voir cet outil PQ que je ne connais pas et je tatonne dedans, j'essaie de comprendre l'esprit...
En fait, j'aimerais bien que mes étiquettes de colonne soient issues des données de la feuille précédente et que le résultat reste dynamique, pas juste une transposition à un instant "T"
https://cjoint.com/doc/23_04/MDmtKZfdFWk_Donn%C3%A9es-fictives-tests-CCM.xlsx
Merci de l'intérêt et du suivi !
Je me demandais si Access pouvait aussi apporter une solution ?
yclik
Oui c'est tout à fait ce que je voulais obtenir !
Par contre, c'est une formule assez complexe que je ne connais pas à moins qu'il soit possible de la suivre à partir des boîtes de dialogue des formules ?
Je pensais que c'était réalisable avec un système comme les TC ?
Déjà, je vois que ça fonctionne très bien !
Mille mercis
Bonjour,
Dans le fichier joint, les 2 requêtes. (PS, il n'y a pas 8 divisions, mais 9...)
Dans l'onglet "Global", le tableau de récap des divisions en colonnes
Dans l'onglet "Div", un menu déroulant pour choisir la division.
Pour mettre à jour, un clic droit dans la requête "Actualiser", ou dans le ruban "Données", le bouton "Actualiser tout"
On pourrait rajouter un code VBA pour que les mises à jour s'effectuent dès :
- Qu'on arrive sur l'onglet "Global"
- Qu'on choisit une division dans l'onglet "Div"
Tu me dis si ça correspond à tes souhaits
Bonne journée
https://cjoint.com/c/MDnhYiM1y8T
Bonjour,
Excellent ! Mille mercis, c'est tout à fait ce que je cherche à faire.
Je voudrais pouvoir le construire toute seule, c'est compliqué quand on a jamais utilisé PQ ?
Je vais dessus mais je ne trouve pas le moyen de modifier, j'importe bien ma base mais je me retrouve comme avec juste un second tableau identique au premier !
Bonjour,
Disons que PQ ne s'improvise pas tout seul...
Il y a plein de tutos sur le net (c'est d'ailleurs ainsi que j'ai commencé, puis du travail personnel, mais à la retraite, c'est vrai que c'est plus facile... :) )
Pour mettre à jour, il faut faire un clic droit dans une des cellules de la requête, puis "Actualiser" (ou dans le ruban "Données", cliquer sur "Actualiser tout".
Comme je te le disais, on peut automatiser la mise à jour par le biais d'un code VBA...
Sinon, as-tu regardé la solution "Formules"? Si tu as 365, tu peux encore améliorer le résultat en utilisant la fonction "Choisircols" (moi, je n'ai que xl2021, donc non dispo dans ma version)
Bonne journée (et découverte de PQ)
Re-,
Sinon, une alternative, par formules, mais cela dépend de la version Excel que tu utilises..
Si tu as Excel2021 ou 365, c'est bon, sinon, hélas...(et comme tu ne m'as pas donné ta version...)
Dans l'onglet "Formules", soit un filtre sur une division (Cellule A2 pour choisir la div), soit le tableau entier
Pour le choix par Div, je n'ai mis que "Nom-Prénom", mais on peut adapter la formule pour obtenir plus de données.
Au choix
https://cjoint.com/c/MDnn31OewYT
Bonne apm
Excellent cette formule "trier" et "filtre" Je retiens ! C'est simple et efficace :)
Pour concaténer les cellules, je maîtrise déjà et c'est très pratique.
Pour la version Excel, impossible de trouver dans les propriétés il est indiqué que c'est dans "office 16". C'est un accès via une école, pas une version perso
Mille mercis
Ok,
Donc la formule pour une division pourrait être améliorée avec la fonction "choisircols" (que je n'ai pas...)
Celle-ci te permettrait d'extraire les colonnes désirées selon le choix de la division dans la cellule A2
Sans filets donc, est-ce que tu pourrais essayer cette formule (que tu places dans la cellule C20 de l'onglet "Formules" de mon fichier, afin que la propagation puisse se faire - il ne faut pas de données à droite ni en dessous des formules dynamiques)
=CHOISIRCOLS(TRIER(FILTRE(T_Data;T_Data[Div 2023 2024]=Formules!A2));1;2;5;6)
Cette formule "devrait" te restituer les colonnes "Nom", "Prénom", "Age" et "Classe" (si je l'ai correctement écrite...)
Pour l'extraction globale, (1 division par colonne), je pense que les différentes formules (1 par colonne, en ligne 2) suffisent...