Power Query Changer la source de la requête avec tables dans le même fichier

Lolote83

XLDnaute Barbatruc
Bonjour à tous et à toutes,

J'ai deux tableaux structurés de structures identiques (Tab_Adulte et Tab_Enfant)
J'ai fait une requête ayant comme source "Tab_Adulte".
Question 1 :
Mon souhait, serait d'utiliser une zone de liste déroulante (Cellule H3) et en fonction du choix, cela me réactualise la requête.
Actuellement, si je modifie la source (mode manuel), cela fonctionne.
Question 2 :
Comment conserver la largeur des colonnes lors de la réactualisation de la requête ?

Tout est expliqué dans le fichier joint.
Merci à tous
Bien cordialement
Lolote83
 

Pièces jointes

  • PQ_ChoixTableCommeSource.xlsx
    34.8 KB · Affichages: 5
Solution
Bonjour,

Voici qui est fait pour la première demande.
voir l'étape 'Source' de la requête ainsi que le module de code de la feuille.

Pour la deuxième question, voir dans les propriétés du tableau :
1650039371589.png

Décocher 'Ajuster la largeur des colonnes'
cordialement

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Voici qui est fait pour la première demande.
voir l'étape 'Source' de la requête ainsi que le module de code de la feuille.

Pour la deuxième question, voir dans les propriétés du tableau :
1650039371589.png

Décocher 'Ajuster la largeur des colonnes'
cordialement
 

Pièces jointes

  • PQ_ChoixTableCommeSource.xlsm
    46.4 KB · Affichages: 7

Lolote83

XLDnaute Barbatruc
Re bonjour,

Merci @Hasco .

C'est exactement ce que je cherchais. Mais ou as tu trouvé cette astuce :
Source = Excel.CurrentWorkbook(){[Name=Table.FirstValue(Excel.CurrentWorkbook(){[Name="ND_Choix"]}[Content])]}[Content],
Franchement il fallait la trouver celle-là.
Tu as saisie ceci à la "mano" ou comment as tu réussis cette prouesse ?
1000 mercis et à bientôt

Cordialement
Lolote83
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Table.FirstValue est une des nombreuses fonctions du language M dont la doc est :
J'ai hésité à mettre la valeur dans une 'pré-étape source' par l'éditeur avancé. Ce qui donnerai ;

let
NomTable = Table.FirstValue(Excel.CurrentWorkbook(){[Name="ND_Choix"]}[Content]),
Source = Excel.CurrentWorkbook(){[Name=NomTable]}[Content],
#"Type modifié" = Table.TransformColumnTypes(Source,{{"Nom", type text}, {"Prenom", type text}, {"Age", Int64.Type}})
in
#"Type modifié"

Cordialement