XL 2019 Concaténation dynamique de plusieurs tableaux

APR63

XLDnaute Nouveau
Bonjour à tous,

Je cherche à faire une base de données dynamique à partir de plusieurs tableaux différents.

En effet, j'ai plusieurs onglets de construction différents qui ont chacun un tableau avec plus ou moins de ligne mais dont les colonnes sont les mêmes dans chaque onglets (individu, projet, nature de dépenses, mois de l'année).

J'aimerais créer dans un dernier onglet, un tableau centralisateur qui va récupérer l'ensemble des lignes de chaque tableaux des autres onglets. Le but ultime étant que si je rajoute des lignes dans n'importe quel onglet de construction, le tableau centralisateur va automatiquement s'incrémenter.

Je vous remercie de votre aide.
 

Pièces jointes

  • test.xlsx
    13.9 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier joint une requête PowerQuery qui interroge tous les tableaux du classeurs qui ne s'appellent pas 'Centralisateur'.

quand les données d'un (ou plus) tableau changent, click-droit sur le tableau 'Centralisateur' -> actualiser
ou Données/Actualiser tout

J'ai mis une colonne avec la provenance le la ligne. On est pas obligé de la conserver.

Cordialement
 

Pièces jointes

  • test.xlsx
    30.8 KB · Affichages: 11

Collins

XLDnaute Occasionnel
Bonjour à tous
Hasco, j'ai un fichier ou je peux utiliser la même méthode en Power Query mais je ne sais pas commencer à créer la source comme dans celui de APR63 ci-dessous.
1631604926703.png

Peux tu m'expliquer la manière de faire.
Une fois la source créée, je pense savoir un peu me débrouiller.
Je te remercie
 

APR63

XLDnaute Nouveau
Bonjour,

Encore merci Hasco pour votre aide. J'ai réussi à faire ce que je voulais. J'ai juste un peu modifié la formule pour aller chercher les tableaux que je veux dans mon fichier final car j'ai d'autres tableaux dans mon fichier et non désiré dans la BDD.

Petite question, comme vous pouvez le constater dans le détail de la requête ci-dessous, j'ai des noms de mois en entête de colonne de mes tableaux (Janvier 2022, Février 2022...). Dans mon fichier, les entêtes de colonnes ne sont pas en format texte mais sont issus d'une formule. Le fichier doit pouvoir servir d'année en année et j'ai donc les mois accompagnés de l'année qui sont calculés. En conséquence, comment puis-je modifier la requête pour que mes entêtes soient issus de la formule et non pas du simple texte brut?

Merci encore de votre aide.


let
Source = Excel.CurrentWorkbook(),
#"Lignes filtrées" = Table.SelectRows(Source, each ([Name] = "ASSEXT" or [Name] = "COLLAB" or [Name] = "Déplacements" or [Name] = "MS" or [Name] = "MoyenRecept" or [Name] = "UTILITE" or [Name] = "Voyages")),
#"Content développé" = Table.ExpandTableColumn(#"Lignes filtrées", "Content", {"Sujet concerné", "Action", "Projet", "Nature", "Janvier 2022", "Février 2022", "Mars 2022", "Avril 2022", "Mai 2022", "Juin", "Juillet 2022", "Août 2022", "Septembre 2022", "Octobre 2022", "Novembre 2022", "Décembre 2022", "Rubrique"}, {"Sujet concerné", "Action", "Projet", "Nature", "Janvier 2022", "Février 2022", "Mars 2022", "Avril 2022", "Mai 2022", "Juin 2022", "Juillet 2022", "Août 2022", "Septembre 2022", "Octobre 2022", "Novembre 2022", "Décembre 2022", "Rubrique"}),
#"Colonnes renommées" = Table.RenameColumns(#"Content développé",{{"Name", "Provenance"}}),
#"Personnalisée ajoutée" = Table.AddColumn(#"Colonnes renommées", "Total", each List.Sum(List.Range(Record.ToList(_),4,12))),
#"Colonnes permutées" = Table.ReorderColumns(#"Personnalisée ajoutée",{"Sujet concerné", "Action", "Projet", "Nature", "Janvier 2022", "Février 2022", "Mars 2022", "Avril 2022", "Mai 2022", "Juin 2022", "Juillet 2022", "Août 2022", "Septembre 2022", "Octobre 2022", "Novembre 2022", "Décembre 2022", "Total", "Rubrique", "Provenance"})
in
#"Colonnes permutées"
 

APR63

XLDnaute Nouveau
Hasco,

Voici un exemple.

Comme vous le constaterez, les entêtes des tableaux sont en texte brut alors que j'ai une formule permetant de gérer le mois et l'année que j'aimerais utiliser pour générer les entêtes des tableaux et utiliser dans la requête.

Merci beaucoup.
 

Pièces jointes

  • test 2.xlsx
    15.4 KB · Affichages: 6

APR63

XLDnaute Nouveau
Hasco,

Je vous remercie vivement de votre aide. Grâce à vous, j'ai un outil très puissant qui va me faire gagner beaucoup de temps.

Je me permets d'abuser de votre temps, j'ai deux dernières demandes:

1 / Comment rajouter une colonne dans laquelle j'aurai une information générale qui sera la même pour tout le tableau centralisateur. Par exemple, le nom d'un centre de coûts?

2 / Enfin, pensez-vous que je pourrai utiliser powerquery afin de venir lire non plus les tableaux d'un seul fichier (centre de coûts) mais le tableau centralisateur de plusieurs fichiers différents? En effet, j'ai maintenant la capacité de faire une BDD par fichier (centre de coûts) mais en finalité j'aurai une trentaine de centres de coûts et donc une BDD globale à réaliser.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Comment rajouter une colonne dans laquelle j'aurai une information générale qui sera la même pour tout le tableau centralisateur. Par exemple, le nom d'un centre de coûts?
Re,

Une chose après l'autre quand même !

Dans l'onglet 'Ajouter une colonne' de PQ cliquez sur 'Colonne personnalisé'
Dans la zone 'Nouveau nom de colonne' mettez le nom de colonne voulue (Centre de coûts)
Dans la zone 'Formule de colonne personnalisée' mettez entre guillemet la constante texte que vous voulez précédée d'un signe =

exemple : = "Nouakchott'

Valider la fenêtre.

Pour votre deuxième question c'est oui. Données/Obtenir des données/A partir d'un fichier/A partir d'un dossier.

Le principe sera le même, sauf que lorsque vous développerez vos fichiers, PQ créera une fonction de traitement de chaque fichier à partir d'un exemple. Modifiez cet exemple de traitement d'un fichier pour que chaque fichier soit traité de la même façon.

Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 645
Messages
2 111 530
Membres
111 190
dernier inscrit
clmtj