Power Query Variabiliser automatiquement une source de données PQ selon l’utilisateur

Alexis123456

XLDnaute Nouveau
Bonjour à tous,

Après des semaines de recherche, vous êtes mon dernier espoir.

Je souhaite que Power Query modifie automatiquement une source de données selon l’utilisateur qui ouvre le fichier Excel.

En l’état, voici le code utilisé, et qui fonctionne normalement, mais seulement en ouvrant le tableur depuis mon pc :
  • au niveau du code pour la Source :
= Csv.Document(File.Contents("C:\Users\Ensolfina-22\Ensolfina Dropbox\Dossier de l'équipe Ensolfina\Ensolfina\00. Support\Comptabilité\_YRU\_YRU\FICHIERS SOURCES\Classeur source Ventes GestCom.CSV"),[Delimiter=";", Columns=18, Encoding=1252, QuoteStyle=QuoteStyle.None])

  • au niveau du code affiché dans l’éditeur avancé :
let
Source = Csv.Document(File.Contents("C:\Users\Ensolfina-22\Ensolfina Dropbox\Dossier de l'équipe Ensolfina\Ensolfina\00. Support\Comptabilité\_YRU\_YRU\FICHIERS SOURCES\Classeur source Ventes GestCom.CSV"),[Delimiter=";", Columns=18, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"En-têtes promus" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Type modifié" = Table.TransformColumnTypes(#"En-têtes promus",{{"Créateur", type text}, {"Etablissement", type text}, {"Date", type date}, {"N° Facture", type text}, {"N° Client", type text}, {"Dénomination", type text}, {"Code postal de livraison", type text}, {"Ville livraison", type text}, {"Pays de livraison", type text}, {"Etat", type text}, {"Mode de règlement", type text}, {"Total HT", type number}, {"Total TTC", type number}, {"Statut paiement", type text}, {"Responsable", type text}, {"Echéance", type date}, {"Pôle d'activité", type text}, {"Commentaires non imprimables", type text}})
in
#"Type modifié"


Mon nom d’utilisateur est « Ensolfina-22 » et ce n’est que cette partie qui doit s’automatiser.

Je vous remercie tous par avance.

PS : j’ai le niveau d’un nouveau-né en PQ, idem pour VBA.
 

chris

XLDnaute Barbatruc
Bonjour

Il suffit de découper (comme dans une formule Excel de concaténation
Source = Csv.Document(File.Contents("C:\Users\" & Ensolfina-22 &"\Ensolfina Dropbox\Dossier de l'équipe Ensolfina\Ensolfina\00. Support\Comptabilité\_YRU\_YRU\FICHIERS SOURCES\Classeur source Ventes GestCom.CSV"),[Delimiter=";", Columns=18, Encoding=1252, QuoteStyle=QuoteStyle.None]),

Mais la question est où récupères-tu le nom de l'utilisateur ?

Si ce doit être automatique selon l'utilisateur connecté au PC

voici une fonction
VB:
() =>
let
    Source = Folder.Contents("C:\Users\"),
    #"Expanded Attributes" = Table.ExpandRecordColumn(Source, "Attributes", {"Hidden", "Directory", "ChangeTime"}, {"Hidden", "Directory", "ChangeTime"}),
    #"Filtered Directories not hidden" = Table.SelectRows(#"Expanded Attributes", each ([Directory] = true) and ([Hidden] = false)),
    #"Removed Errors" = Table.RemoveRowsWithErrors(#"Filtered Directories not hidden", {"ChangeTime"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Errors", each ([Name] <> "Public")),
    #"Username" = #"Filtered Rows"{0}[Name]
in
    #"Username"
à nommer Fx_UserName
puis remplace dans mon 1er exemple
& Ensolfina-22 &
par & Fx_UserName() &
 

Statistiques des forums

Discussions
314 841
Messages
2 113 482
Membres
111 877
dernier inscrit
thierry@1965