Premier pas Power Query
Bonjour,
Je découvre depuis hier les différents puissants outils que propose Excel et donc Power Query.
J'ai compris que je pouvais combiner des données de plusieurs tableaux structurés sur une même requête.
On en arrive au détail:
3 feuilles dans un même classeur ayant le même tableau structuré nommé différemment sur chaque feuille
- feuille 1 nommée "VILLE A" tableau nommé "T_rep_A" avec les données suivantes: (NOM; PRENOM; VILLE ; CODE POSTAL)
- feuille 2 nommée "VILLE B" tableau nommé "T_rep_B" avec les données suivantes: (NOM; PRENOM; VILLE ; CODE POSTAL)
- feuille 3 nommée "VILLE C" tableau nommé "T_rep_C" avec les données suivantes: (NOM; PRENOM; VILLE ; CODE POSTAL)
Je voudrai obtenir 1 dernière feuille de synthèse:
- feuille 4 nommée "Synthèse" et je voudrai un tableau structuré "T_rep_GLOBAL" avec comme données tous les NOMs ; tous les PRENOMs; toutes les VILLEs ; tous les CODEs
Pouvez-vous me donner la marche à suivre svp?
je vais sur une feuille vierge --> données --> obtenir des données --> lancer PowerQuery et là c'est le drame!!
Je suis coincé car je n'arrive pas à comprendre comment ça fonctionne
Merci d'avance
Bonjour,
1) créer des connexions vers les tables
-sélectionner les tables une à une, menu données, importer données à partir d'une table, (power query s'ouvre choisir fermer et charger dans ... puis choisir connexion )
2) menu données, choisir combinaison de requetes, ajouter
Je ne suis pas sûr des libellés de menu en français (travaillant avec une version aglaise)
Bonjour à tous
Une autre solution pour sélectionner et fusionner toutes les tables dont le nom commence par T_ (présentes et futures)
Super, merci à tous les 2!!
Le tour est joué pour cette 1ère étape.
j'ai suivi le tuto remis par 78chris parce que le pas à pas du forum me semble plus facile à suivre et que 'autres tableaux T_ vont se greffer au classeur.
Merci encore.
bonjour,
j'ai suivi le tuto remis par 78chris
tu as eu bien raison, c'est super bien fait !
Maintenant que cette étape est créée,
Est-il possible de récupérer les données de la requête globale pour les envoyer sur une autre feuille dont le tableau structuré de la feuille dépendra des répertoires construits?
Je m'explique un peu plus:
la requête power query donne le résultat suivant:
la feuille "T_rep_Global" avec le tableau structuré de donnée suivant (NOM; PRENOM; VILLE ; CODE POSTAL)
Sur un autre classeur, la feuille nommée "T_fourniture" , donne le tableau structuré suivant (ACHAT STYLO; NOMBRE DE CARTOUCHES UTILISEES; FEUILLES A4; CAHIERS; POT DE PEINTURE)
Est-il possible d'insérer la requête de façon à obtenir sur la feuille du second classeur ce résultat
tableau structuré "T_rep_Global" collé à tableau structuré "T_fourniture"
(NOM; PRENOM; VILLE ; CODE POSTAL) collé à (ACHAT STYLO; NOMBRE DE CARTOUCHES UTILISEES; FEUILLES A4; CAHIERS; POT DE PEINTURE)
et lorsque la requête T_rep_Global est mise à jour, se met elle aussi à jour dans "T_fourniture"?
Alors il y a peut être une erreur car cela me ferait 2 tableaux structurés collés et l'un dépend de l'autre.
Je ne sais pas si je suis clair
RE
D'après ce que je comprends ce sont les fournitures achetées aux personnes du 1er tableau
Il ne faut pas les juxtaposer mais les croiser par requête
Quelles est la logique d'attribution des achats aux personnes ?
78Chris,
En fait j'ai donné ces textes en guise d'exmple. Dans les faits, il s'agit toujours de mon tableau de formation d'employés que je refond totalement sur vos conseils à Jean-Eric et toi (issu de mon 1er post sur ce forum) et comme il est relativement lourd, je voulais juste comprendre des mécaniques avant d'essayer de les transposer par moi même.
En fait, les fournitures correspondent à des stages effectués, prévus ou ratés.
Le but d'attribuer ces données à la liste des personnes est de pouvoir faire une synthèse globale de suivi de formation et un suivi individuel comme me l'avait montré Jean-Eric sur ma 1ère demande mais que je n'arrive pas à transposer facilement.
Comme le classeur de formations contient 7 feuilles de plus de 15 formations différentes, je voulais que la liste du personnel à jour issue de la requête du 1er classeur puisse se mettre automatiquement devant chaque liste de formation afin de pouvoir compléter les dates de réalisation, d'inscription, ou "RETARD" en fonction du besoin de chacun.
J'essaie de chercher une logique de fonctionnement pour faciliter la collecte pour les futures dates et l'ajout de futurs employés. Et je réfléchis pour utiliser toutes ces données pour en faire la synthèse globale et individuelle sur un autre classeur une fois celui-ci terminé.
Pour le moment j'ai terminé celui du personnel et je m'attaque à celui des formations. J'ai déjà réparti sur 7 feuilles et j'en suis là.
PS: il faudrait que j'arrive à penser à la suite: archivage d'un employé avec toutes ses formations sur une feuille distincte et suppression de toutes les feuilles du personnel "actif" mais cette problématique sera peut à prévoir bien plus tard.
RE
Prendre un exemple éloigné du cas réel n'aide pas à t'aider...
Dans ce cas pourquoi avoir séparé en n tableaux la liste des employés ?
Il serait plus simple de garder une unique liste avec une colonne indiquant le lieu de travail
Au quotidien tu peux filtrer par Lieu avec un Segment...
Ensuite il faut raisonner en base de données avec
- une table des formations : code, libellé, Type (Initial, Recyclage...), Niveau...
- un calendrier des formations : Code formation, libellé par RECHERCHEV, dates avec une ligne par date
- une table des inscriptions prévues : Code Salarié, Nom par RECHERCHEV, Code Formation, Libellé par RECHERCHEV, date prévue, réalisée OUI/NON (utiliser des listes déroulantes pour peupler Code Salarié, Code Formation, date)
A partir de croisements des données par requêtes tu peux faire toutes les analyses nécessaires
A la rigueur, PowerQuery permettant moins de formalisme qu'une véritable base de données, tu peux au 2. prévoir une colonne par date (Session 1, Session2,... en titres avec dates correspondantes pour chaque ligne
Oui tu as raison, je n'aurai pas du m'éloigner du cas réel.
olala c'est fou tout ce qui semble évident pour un connaisseur!!
Alors en effet une simple liste segmentée marche super bien. Je ne savais même pas que ça existait
Pour les formations, ça se complique un peu pour moi:
les 7 catégories de formations doivent être sur des feuilles différentes par soucis de facilité de lecture et tous les employés doivent pouvoir "apparaitre" sur chaque feuille au choix (d'où mon idée de tableau structuré) soit en totalité, soit individuellement, soit par site afin de pouvoir lire dans les cellules correspondantes aux formation l'année réalisée (antérieur 2021), prévue (>=2021) ou "retard"
RE
La ou les formations où sont inscrits les salariés, réparties par année, et état (fait, pas encore fait car futur, en retard) c'est justement la requête qui le dira en fonction de la table 3.
On peut afficher de diverses manières le résultat
Ou alors explique ou dessine le processus que tu imagines
78chris,
j'ai une idée, je ne sais pas si elle est réalisable et si tu peux me guider:
ma première feuille contient donc la liste des employés sous forme de tableau structuré et segmenté; est-il possible de créer une macro pour copier la liste dans les tableaux structurés des feuilles de formations?
Cette macro s'activerait avec un bouton "actualiser" et afficherait les noms des segments sélectionnés; par exemple:
- si je choisis le segment "lieu de travail C" sur la feuille "Formation C", c'est la liste des employés C qui s'affiche dans le tableau structuré des formations
- si je choisis les segments "lieu de travail A et B"; c'est la liste des employés A et B qui s'affichent dans le tableau structuré des formations
- si je choisis tous les segments (lieu de travail A à H) ce sont les employés des 8 segments qui s'affichent
Si cela peut fonctionner, je peux compléter l'ensemble du tableau structuré pour chaque formation et ensuite passer à l'étape synthèse? est-ce que je me trompe?
Le soucis supplémentaires c'est que je ne sais ni comment faire cette macro ni son bouton (au cas ou c'est réalisable).
C'est trop pénible de ne pas savoir faire et d'avoir pourtant plein d'idées.....
RE
Ce n'est pas un problème Excel ou PowerQuery ou VBA c'est un problème de conception
Comment inscrit-on dans la vie réelle une personne à une formation de telle type à telle date ?
Sauf si tout le monde suit toutes les formations, cela ne s’automatise pas...
C'est l'action d'inscrire qui fait le lien entre une personne et une session de telle ou telle formation
Oui justement, le remplissage des dates de formation reste manuel.
C'est donc moi qui m'exprime très très mal
Je t'ai mis le classeur réduit à 3 catégories de formations et la liste sans les données confidentielles pour que tu puisses voir ce que j'aimerai faire.
J'ai complété manuellement un exemple dans le classeur en PJ: pour les dates c'est normal (action humaine obligatoire) mais j'aimerai pouvoir copier automatiquement les listes de la feuille "T_rep_effectifs" dans les feuilles "T_form_..." en fonction du ou des segments sélectionnés sur la feuille "T_rep_effectifs"
RE
Attention : un tableau structuré ne doit JAMAIS contenir de ligne vide (effectifs)
En fait tu es en train de reproduite ton fichier initial simplement coupé en 3
Pour moi ces tableaux sont le résultat, via une requête, de la saisie et non des tableaux de saisie
En plus avec 3 lignes de titres par formation, c'est compliqué à exploiter tant par requête que par formules et pas transformable en tableau structuré
La notion de retard devrait, il me semble, être déduite du fait qu'une personne n'a pas assisté à une formation prévue, et non une saisie
C'est une vision papier : sur le papier la saisie et la restitution ne font qu'un mais en informatique on prévoit une saisie utile dans des tableaux au nombre de colonne limité et la restitution sous la forme que l'on veut
Si tu juxtapose des tableaux, il n'auront pas de lien entre eux et donc pas de synchronisation des lignes : la moindre erreur de manip et les formations saisies pour Dupont seront attribuées à Durand...
Mon dieu que c'est compliqué.
J'avais lu ça pour les tableaux structurés mais comme c'est tout frais ça m'est sorti de la tête aussi vite que c'est rentré :-( et il était rempli sauf que quand je supprime un nom, le tableau laisse la ligne vide et ne la supprime pas.
Y a t'il au moins une possibilité de rapatrier automatiquement les noms de la 1ère feuille vers les suivantes en fonction des segments sélectionnés?
Pour le reste je vais réfléchir autrement mais si j'arrive à faire fonctionner un affichage réduit à une sélection définie ça sera déjà bien plus facile pour suivre
RE
Pour supprimer
- une ligne de tableau structuré : clic sur une cellule de la ligne,
- plusieurs : sélectionner une cellule de chaque ligne
clic droit, supprimer, lignes de tableau (inutile d'effacer avant)
Rapatrier est toujours possible mais pour quoi faire si tu ne peux ajouter de données ni synchroniser avec les lignes à côté ?
Ok j'avais pas capté le clic droit "supprimer des lignes"
Pour le rapatriement c'est pour simplifier la lecture d'un clic ou 2.
Du coup, tu peux m'expliquer comment on fait?
Et si la possibilité existe, comment je peux mettre un bouton "actualiser les pages" pour faire apparaitre dans les autres feuilles le(s) segment(s) choisi(s)?
Enfin si ca ne t'embête pas trop.
RE
Plusieurs possibilités
- soit créer une requête à partir du tableau puis la démultiplier en n requêtes : chacune a pour source la 1ère mais filtre un segment et elle est affichée dans l’onglet voulu
- soit copier coller en valeur, ou en image, par VBA l'extrait filtré sur les onglets
mais c'est repartir sur une usine à gaz pour rien...
Bonsoir,
Bon après plusieurs heures à chercher, j'ai beau tourner dans tous les sens, je ne comprends RIEN.