Charger des sources dans Power Query variables par le nom

Bonjour mes amis

je suis sur un projet et je voudrais solliciter encore votre appui.

J'ai un dossier contenant des classeurs format .csv et dont les noms sont différents de par la date Ex: rapport de transaction du jj mm aaaa (jj le mm pour le mois et aaaa pour l'année).

Je voudrais charger ce(s) classeur(s) dans un autre classeur nommé Synthèse afin de les transformer dans l'éditeur Power query. Je voudrais savoir svp s'il serait possible de décider du fichier ou des fichiers à charger tout simplement en choisissant l'intervalle de date Ex: du 22 05 2023 au 23 05 2023 ou du 22 05 2023 au 22 05 2023 (cas d'un seul fichier).

Pour l'exemple je joins trois fichiers qui sont dans le même dossier.

Merci d'avance

15synthese.xlsx (15.32 Ko)

Bonjour

Transforme tes cellules de choix de dates en Tableau structuré nommé Choix et passe le à PowerQuery

Commence ta requête de Synthèse par

let
    Source = Folder.Files("T:\TEMP\__XLPRA\csv\V2"),
    #"Personnalisée ajoutée" = Table.AddColumn(Source, "DateF", each Date.From(Text.BeforeDelimiter(Text.End([Name],14),"."))),
    #"Personnalisée ajoutée1" = Table.AddColumn(#"Personnalisée ajoutée", "Personnalisé", each Choix),
    #"Personnalisé développé" = Table.ExpandTableColumn(#"Personnalisée ajoutée1", "Personnalisé", {"Date debut", "Date fin"}, {"Date debut", "Date fin"}),
    #"Personnalisée ajoutée2" = Table.AddColumn(#"Personnalisé développé", "Filtre", each if [DateF]>=[Date debut] and [DateF]<=[Date fin] then 1 else null),
    #"Lignes filtrées" = Table.SelectRows(#"Personnalisée ajoutée2", each [Filtre]<>null)
in
    #"Lignes filtrées"

adapter le chemin

Salut 78chris

merci pour ta réponse.

J'ai bien changé le chemin dans l'éditeur

2

Mais à la deuxième étape j'ai cette erreur

1

Peut être ais je oublié de changer d'autres paramètres. Une question dans le code Dax les noms Date debut et Date fin correspondent ils à des noms de cellules assignés dans l'onglet "Gestionnaire de noms" ?

Merci

RE

Transforme tes cellules de choix de dates en Tableau structuré nommé Choix et passe le à PowerQuery

Tu n'as pas tout lu...

PowerQuery utilise le langage M pas DAX

RE

Ah oui tu as raison désolé.

Voici fait mais ca coince toujours

le même message reste après actualisation

3
15synthese.xlsx (19.90 Ko)

RE

Tu n'as pas balancé le tableau Choix dans PQ (depuis une cellule, Données, A partir d'un tableau)

Okey on y est presque

Là c'est la dernière étape qui coince. Serait ce le format date?

4

RE

Dans la requête Choix les colonnes dates doivent être typées en date et non en Date/heure

Bonjour 78chris

comme ceux ci?

image

Il n'y a plus de message d'erreur dans l'autre requête et le filtre fonctionne bien mais je n'arrive toujours pas à charger les tableaux. La dernière étape de la requête donne 0 ligne.

image

Aurais oublié quelques choses.

Merci pour ta patience

RE

Selon DateF aucune ligne n'est dans la fourchette de dates donc c'est normal...

Oui c'est exact avec les tests j'ai omis d'actualiser les fichiers présents avant de faire la capture. Là j'ai mis le fichier du jour par exemple et il a chargé et c'est marqué 1 au niveau de la colonne Filtre.

image

J'essaie de charger le tableau mais je ne tombe pas sur le tableau de la journée du 25 05 2023 mais ce tableau

image

Cdt

RE

je t'ai donné le début de la requête comme dit dans mon tout 1er message

Après le filtre à toi d'exploiter selon ce que contiennent tes fichiers et ton objectif de restitution

Tu as écrit "afin de les transformer dans l'éditeur Power query" mais on ne sait rien des transformations envisagées...

En général on ne garde que les colonnes Content et Name puis on développe Content ce qui provoque la création d'une arborescence et dont une fonction de transformation basée sur les étapes ajoutées ou non à la requête Transformer l'exemple de fichier pour transformer, analyser...

Hellon Chris

j'ai enfin pu terminé le code grâce à toi

"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Totalement d'accord avec lui et toi

ca fait pas longtemps que j'ai commencé à apprendre Power Querry et m'y étais pas encore mis dans le langage M. J'hésitais un peu tripatouiller ton premier code mais après l'avoir fait et réussi, je contres content.

Power querry offre tellement de possibilité c'est fou.

Voici ce que j'ai pu faire après ton dernier post. Mon problème se trouvait dans le format .csv des fichiers mais après des recherches sur le net j'ai trouver la bonne formule et les options à intégrer.

let
    Source = Folder.Files("C:\Users\amouedraogo\Desktop\Rapport"),
    #"Personnalisée ajoutée" = Table.AddColumn(Source, "DateF", each Date.From(Text.BeforeDelimiter(Text.End([Name],14),"."))),
    #"Personnalisée ajoutée1" = Table.AddColumn(#"Personnalisée ajoutée", "Personnalisé", each Choix),
    #"Personnalisé développé" = Table.ExpandTableColumn(#"Personnalisée ajoutée1", "Personnalisé", {"Date debut", "Date fin"}, {"Date debut", "Date fin"}),
    #"Personnalisée ajoutée2" = Table.AddColumn(#"Personnalisé développé", "Filtre", each if [DateF]>=[Date debut] and [DateF]<=[Date fin] then 1 else null),
    #"Lignes filtrées" = Table.SelectRows(#"Personnalisée ajoutée2", each [Filtre] <> null),
    #"Type modifié" = Table.TransformColumnTypes(#"Lignes filtrées",{{"Date fin", type date}, {"Date debut", type date}, {"DateF", type date}}),
    #"Colonnes supprimées" = Table.RemoveColumns(#"Type modifié",{"Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path", "DateF", "Date debut", "Date fin", "Filtre"}),
    #"Personnalisée ajoutée3" = Table.AddColumn(#"Colonnes supprimées", "Personnalisé", each Csv.Document([Content],[Delimiter=";", Columns=17, Encoding=1252, QuoteStyle=QuoteStyle.None])),
    #"Personnalisé développé1" = Table.ExpandTableColumn(#"Personnalisée ajoutée3", "Personnalisé", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17"}),
    #"Colonnes supprimées1" = Table.RemoveColumns(#"Personnalisé développé1",{"Content", "Name"}),
    #"En-têtes promus" = Table.PromoteHeaders(#"Colonnes supprimées1", [PromoteAllScalars=true]),
    #"Modifier type Date heure" = Table.TransformColumnTypes(#"En-têtes promus",{{"Symbole", type text}, {"Type", type text}, {"Statut", type text}, {"Cours", type text}, {"Volume", type text}, {"% chg.", type text}, {"Heure de transaction", type datetime}, {"Acheteur", type text}, {"Type_1", type text}, {"Compte", type text}, {"Référence", type text}, {"N° client", type text}, {"Vendeur", type text}, {"Type_2", type text}, {"Compte_3", type text}, {"Référence_4", type text}, {"N° client_5", type text}}),
    #"Doublons symboles supp" = Table.SelectRows(#"Modifier type Date heure", each ([Symbole] <> "Symbole")),
    #"Valeur remplacée les espaces vides" = Table.ReplaceValue(#"Doublons symboles supp","#(00A0)","",Replacer.ReplaceText,{"Cours"}),
    #"Type modifié1" = Table.TransformColumnTypes(#"Valeur remplacée les espaces vides",{{"Cours", Int64.Type}})
in
    #"Type modifié1"

Merci beaucoup à toi Chris pour ton aide et ta patience. Bon weekend

Bonjour

Merci du retour

On n'a pas besoin de toucher au code : on se sert des options du ruban et du clic droit.

Mais comme on n'avait pas les billes sur ce que tu voulais faire, j'ai posté les premières lignes en code...

Bon WE

Hello 78chris

j'espère que tu vas bien.

Stp dis moi comment pourrais faire varier le chemin du dossier des fichiers que je fusionne. Je voudrais renseigner le lien dans une cellule (que je pourrais facilement modifier en cas de changement de dossier source ou d'ordinateur). Ensuite modifier le code M pour qu'il récupère le nouveau lien.

j'ai pensé à recuperer le lien en passant le nom de la cellule que j'ai nommé "source_rapport_transactions"

let

    Source = Excel.CurrentWorkbook(){[Name="source_rapport_transactions"]},

    #"Personnalisée ajoutée" = Table.AddColumn(Source, "DateF", each Date.From(Text.BeforeDelimiter(Text.End([Name],14),"."))),
    #"Personnalisée ajoutée1" = Table.AddColumn(#"Personnalisée ajoutée", "Personnalisé", each Choix),
    #"Personnalisé développé" = Table.ExpandTableColumn(#"Personnalisée ajoutée1", "Personnalisé", {"Date debut", "Date fin"}, {"Date debut", "Date fin"}),
    #"Personnalisée ajoutée2" = Table.AddColumn(#"Personnalisé développé", "Filtre", each if [DateF]>=[Date debut] and [DateF]<=[Date fin] then 1 else null),
    #"Lignes filtrées" = Table.SelectRows(#"Personnalisée ajoutée2", each [Filtre] <> null),
    #"Type modifié" = Table.TransformColumnTypes(#"Lignes filtrées",{{"Date fin", type date}, {"Date debut", type date}, {"DateF", type date}}),
    #"Colonnes supprimées" = Table.RemoveColumns(#"Type modifié",{"Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path", "DateF", "Date debut", "Date fin", "Filtre"}),
    #"Personnalisée ajoutée3" = Table.AddColumn(#"Colonnes supprimées", "Personnalisé", each Csv.Document([Content],[Delimiter=";", Columns=17, Encoding=1252, QuoteStyle=QuoteStyle.None])),
    #"Personnalisé développé1" = Table.ExpandTableColumn(#"Personnalisée ajoutée3", "Personnalisé", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17"}),
    #"Colonnes supprimées1" = Table.RemoveColumns(#"Personnalisé développé1",{"Content", "Name"}),
    #"En-têtes promus" = Table.PromoteHeaders(#"Colonnes supprimées1", [PromoteAllScalars=true]),
    #"Doublons symboles supp" = Table.SelectRows(#"En-têtes promus", each ([Symbole] <> "Symbole")),
    #"Type modifié1" = Table.TransformColumnTypes(#"Doublons symboles supp",{{"Heure de transaction", type datetime}}),
    #"Valeur remplacée les espaces vides" = Table.ReplaceValue(#"Type modifié1","#(00A0)","",Replacer.ReplaceText,{"Cours"}),
    #"Type modifié2" = Table.TransformColumnTypes(#"Valeur remplacée les espaces vides",{{"Cours", Int64.Type}, {"Volume", Int64.Type}, {"% chg.", type number}, {"Acheteur", Int64.Type}, {"Compte", Int64.Type}, {"N° client", Int64.Type}, {"Vendeur", Int64.Type}, {"Compte_3", Int64.Type}, {"N° client_5", Int64.Type}})
in
    #"Type modifié2"

Mais je tombe sur cette erreur à la 2e étape

image

Merci d'avance

Bonjour

Excel.CurrentWorkbook(){[Name="source_rapport_transactions"]}
doit remplacer tout ou partie
"C:\Users\amouedraogo\Desktop\Rapport"

dans Source de la requête initiale

Rechercher des sujets similaires à "charger sources power query variables nom"