Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Power Query Récupérer les données de plusieurs fichier d'un même dossier et les intégrer dans un fichier déja construit

Ceace92

XLDnaute Nouveau
Bonjour à tous !

Etant nouvelle sur le forum (& débutante sur le sujet), j'ai tout d'abord fait le tour des tutos ainsi que les discussions afin de trouver la solution à mon problème.
Toutefois, j'ai besoin de l'aide d'experts !
Au départ je souhaitais connaître les bases sur VBA et finalement grâce à votre site j’ai pu découvrir Power Query (beaucoup plus simple et intuitif je trouve).
Petit préambule :
- J’ai travaillé au préalable un fichier qui m'a permis de définir les besoins par catégories de produits high tech
- J’ai démultiplié ce fichier avec seulement les lignes concernées par une catégorie (par exemple les smartphones, les téléviseurs ou micro informatique), sachant que j’ai au total 7 catégorie de produits (= mes 7 fichiers)
Par exemple dans mon fichier source, sur une période donnée : j'ai 10 lignes (donc 10 produits) dont 7 pour les smartphones & 3 pour les produits hifi/son
- Chaque catégorie est gérée par une personne qui va remplir ce fichier

Dans le cadre d’un besoin professionnel, je souhaite :
- Récupérer dans 7 fichiers Excel.xlsx (dont la construction est la même) des données écrites et chiffrées (CA et valeur)_ ils sont tous dans le même dossier
- Les combiner dans un fichier (le fichier de base, cité plus haut) & donc de faire en sorte qu'un "copier/coller" se fasse tout en respectant la construction du fichier source

J'ai seulement réussi à "absorber" les données souhaitées avec 1 seul fichier, ça se complique lorsque je souhaite prendre l'ensemble du dossier.
Pour chacun de mes fichiers :
- j'ai 2 onglets
- des listes déroulantes et certaines en « cascade »

Problématique rencontrée_
- lorsque j'ai sélectionné mon dossier & que je souhaite développer ma colonne "content" : j'ai un message d'erreur m'indiquant que mon fichier ne peux pas être géré
Dans un souci de confidentialité (comme pour beaucoup de monde), je ne peux déposer les fichiers en question, si besoin je peux supprimer les infos les plus importantes afin de mieux exposer mon problème !

Je pense qu'il me manque une ou plusieurs étapes avant d'arriver à mon résultat (qui me paraissait simple au début..)
Je vous remercie d'avance pour le temps que vous allez consacrer à ma demande !

Morgane.
 

Ceace92

XLDnaute Nouveau
Bonjour à tous,

J'ai pris le temps de travailler mes fichiers pour que ce soit plus "facile" pour vous (ce que j'aurai dû faire dès le départ !)
1er fichier : Récapitulatif par catégorie
--> C'est dans ce fichier que je souhaite récupérer les infos & intégrées de la colonne W à BD (les colonnes orange + celle en verte)
2ème fichier : Dossier comprenant 3 catégories (au lieu de 7 dans la réalité)
--> Reprendre les infos saisies de la colonne W à BD

Merci d'avance pour vos retours !
 

Pièces jointes

  • Répartition par catégorie.xlsx
    383.3 KB · Affichages: 17
  • Catégorie.zip
    907.6 KB · Affichages: 10

chris

XLDnaute Barbatruc
Bonjour

Tu ne peux juxtaposer les résultats d'une requête à un tableau existant sans risque de désynchronisation.

De plus tes tableaux ne sont pas normalisés : double titrage avec plusieurs titres en double ou plus, sous-totaux intermédiaires...

En plus si j'ai bien compris, la synthèse est en partie complétée par saisie...

Tu as 2 pistes PowerQuery
  1. Normaliser tous tes tableaux et fusionner avec les données externes dans PowerQuery et récupérer un tableau synthétisant le tout mais si saisie il faut combiner avec un self referencing
  2. Normaliser les tableaux externe et récupérer les données des fichiers par PowerQuery, les afficher dans un onglet et utiliser des formules pour compléter ton tableau de synthèse
 

Ceace92

XLDnaute Nouveau
Bonjour Chris,
Merci pour ta réponse.

Si je me penche sur cette solution :
  1. Normaliser les tableaux externe et récupérer les données des fichiers par PowerQuery, les afficher dans un onglet et utiliser des formules pour compléter ton tableau de synthèse
Histoire de bien comprendre :
- il faut que je "simplifie" mes fichiers dans le même dossier (les catégories)
- je les récupère & compile dans un onglet présent sur mon fichier récap
- de cet onglet je pourrai reprendre mes infos pour mon tableau synthèse

Merci !
 

chris

XLDnaute Barbatruc
Bonjour

Oui, enlève les sous totaux et totaux
Eventuellement modifies les titres des ces fichiers afin d'avoir par exemple CODE SERVICE DÉTAILS SÉLECTION pour le second si tu ne veux pas avoir CODE SERVICE 2 dans PowerQuery
Place les tous dans un même dossier et compile le dossier dans POwerQuery : tout nouveau fichier sera traité
 

chris

XLDnaute Barbatruc
RE
Je suis avec intérêt les explications de Chris :
question :
Compiler, c'est à la main ?, à l'aide de combiner ?
Non on indique le dossier comme source : cela crée une arborence de requêtes dont une requête servant de modèle.
On y fait ce qui est nécessaire pour tout fichier : régler le PB d'en-têtes, typer les données, et autres ajustements plus ou moins importants selon les fichiers (j'ai parfois compilé des trucs assez improbables...).
Powerquery transforme au fur et à mesure cela en fonction (un peu comme un enregistreur macro)

Le requête de compilation, présente dans la liste, va appliquer automatiquement cette fonction à chaque fichier avant de réaliser l'union des fichiers.
(En général il faut en supprimer la dernière étape qui a typé les données avant que l'on ait modélisé et qui se retrouve en erreur)

C'est à la fois très puissant et assez simple.

Un exemple parmi d'autres
 

Ceace92

XLDnaute Nouveau
Bonjour Chris,

Merci pour ta réponse !
J'ai fait les modifs sur mes fichiers, toutefois lorsque je souhaite lancer l'exportation un message d'erreur s'affiche :

J'arrive à réaliser l'action sur un seul fichier, mais dès que c'est l'ensemble du dossier ça bloque.
Peux-tu m'en dire plus sur la marche à suivre s'il te plaît ?

Merci !
 

chris

XLDnaute Barbatruc
lorsque je souhaite lancer l'exportation un message d'erreur s'affiche :Regarde la pièce jointe 1078889
Qu'appelle-tu lancer l'exportation ?
On importe, on n'exporte pas

A l'étape 1, on sélectionne le chemin, à l'étape 2, utiliser Combiner et Modifier et, comme indiqué dans mon post #9, effectuer les ajustements nécessaires pour les en-têtes sur le fichier exemple (requête Transformer l'exemple de fichier à partir de Catégorie)

Il y a cependant 2 soucis sur les fichiers que tu as transmis :
  1. la colonne MN / MDD absente de l'un des fichiers (cela peut passer en corrigeant l'étape de typage des colonnes)
  2. l'onglet à traiter, choisi à l'étape 3, ne porte pas toujours le même nom ce qui nécessite de modifier l'étape 2 de la requête Transformer l'exemple de fichier à partir de Catégorie en remplaçant la ligne par
    = Table.SelectRows(Source, each [Kind] = "Sheet"){0}[Data]
    qui indique "1ère feuille du classeur" sans s'occuper de son nom
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…