POWERBI/QUERY :: Récupérer le répertoire qui héberge le classeur POWERBI - Répertoire actif

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

oguruma

XLDnaute Occasionnel
Finalement un petit contournement pour récupérer le répertoire actif qui héberge le classeur PowerBI.
Ceci en passant par un fichier paramètre Excel qu'il faudra activer et mettre à jour à l'installation du classeur PowerBI.
Cette manipulation est plus aisée que dans PowerBI pour les non habitués à cette application.

Environnement
1710438625502.png


Le fichier Excel DOSSIER_COURANT.xlsx
1710438656955.png


On peut également définir le dossier courant via un nom de champ pour le récupérer sous PowerQuery(PowerBI)
1710438765562.png


- à la prise en charge de l'application et à l'issue de l'installation, ouvrir le fichier Excel et le sauvegarder afin que cette formule se mette à jour
=GAUCHE(CELLULE("nomfichier";$A$20);TROUVE("[";CELLULE("nomfichier";$A$3))-2)
Récupération dans l'environnement PowerQuery de PowerBI


1710438937606.png


On positionne la constante DOSSIER_COURANT
PowerQuery:
let
    Source = Excel.Workbook(File.Contents("D:\DATA\06__PRISE_EN_MAIN_POWERBI_LAB\$__pbiDOSSIER_COURANT\DOSSIER_COURANT.xlsx"), null, true),
    DOSSIER_COURANT_DefinedName = Source{[Item="DOSSIER_COURANT",Kind="DefinedName"]}[Data],
    Column1 = DOSSIER_COURANT_DefinedName{0}[Column1]
in
    Column1

Via une table de paramètres TB_PARAMS
1710439054574.png


PowerQuery:
let
    Source =
    Python.Execute(
        "import pandas as pd#(lf)"                                                                                     &
        "import numpy as np#(lf)"                                                                                      &
        "df = pd.read_excel(r'" & DOSSIER_COURANT & "\DOSSIER_COURANT.xlsx')#(lf)" &
        "print (df)"
        ),
    ExpandValues = Table.ExpandTableColumn(Source, "Value", {"PARAMETRE", "VALEUR"}, {"PARAMETRE", "VALEUR"}),
    DelColumns = Table.RemoveColumns(ExpandValues,{"Name"})
in
    DelColumns

On remarque que l'on passe ici par un connecteur Python (juste pour montrer une méthode) ; sinon nous aurions l'importer de manière classique en spécifiant un ressource externe Excel.

L'accès au dossier est réalisé via cette ligne : "df = pd.read_excel(r'" & DOSSIER_COURANT & "\DOSSIER_COURANT.xlsx')#(lf)" &

Source réel chemin non-substitué
Python:
import pandas as pd
import numpy as np
df = pd.read_excel(r'D:\DATA\06__PRISE_EN_MAIN_POWERBI_LAB\$__pbiDOSSIER_COURANT\DOSSIER_COURANT.xlsx')
print (df)

Utilisation - exemple chargement d'une table des départements
1710440270263.png


1ère méthode
PowerQuery:
let   
    Source = Csv.Document(File.Contents(DOSSIER_COURANT & "\" & "DEPARTEMENTS.csv"),[Delimiter=",", Columns=4, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    Promote = Table.PromoteHeaders(Source, [PromoteAllScalars=true])
in
    Promote

2nde méthode
Code:
let
    Folder=fnGetParameter(TB_PARAMS,"DOSSIER_COURANT"),
    Source = Csv.Document(File.Contents(Folder & "\" & "DEPARTEMENTS.csv"),[Delimiter=",", Columns=4, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    Promote = Table.PromoteHeaders(Source, [PromoteAllScalars=true])
in
    Promote

Visualisation sous forme de Carte PowerBI
1710440381463.png
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Power Query Power Query
Réponses
26
Affichages
377
Retour