XL 2016 Power Query modifier chemin du fichier par VBA

demonjohn

XLDnaute Nouveau
Bonjour à tous,

je suis en train de mettre en place un outil de gestion d'intervention qui fait appel à une base de donnée téléchargé mais j'ai un petit soucis avec le chemin du fichier dans Power query. (par soucis de protection des données je ne peux pas vous partager le fichier toutefois si c'est vraiment nécessaire j'utiliserai une base donnée factice).

En effet mon fichier excel pourra etre installé sur différents postes et la base donnée sera envoyé par mail donc le chemin de la source sera différent sur chaque postes.

La règle imposé aux utilisateurs est de placer la base de donnée dans le même répertoire que le fichier excel.

grace à la commande ThisWorkBook.Path, je suis capable de récupérer le chemin du fichier excel et je connais le nom de la base de donnée.

maintenant je souhaiterais créer une commande qui va modifier le chemin du fichier de power query dans le genre:

"chemin du fichier power query "= ThisWorkBook.path & "\base_de_donnée.csv"

merci d'avance pour votre contribution et bon courage à tous

Cordialement,
 

chris

XLDnaute Barbatruc
Bonjour

Pas besoin de VBA : tu peux récupérer le chemin dans une cellule nommée dont le contenu est utilisé par PQ comme variable pour le chemin
Formule dans la cellule
VB:
=GAUCHE(CELLULE("nomfichier");CHERCHE("[";CELLULE("nomfichier"))-1)
Nom de la cellule : Chemin
Placer en tête de la requête, entre let et Source
Code:
Dossier=Excel.CurrentWorkBook(){[Name="Chemin"]}[Content]{0},
et dans la ligne Source remplacer le chemin du fichier par Dossier &"base_de_donnée.csv"
 

demonjohn

XLDnaute Nouveau
bonjour merci pour la réponse rapide,
malheureusement cela ne marche pas toutefois je pense savoir pourquoi:
lorque je remplace le chemin du fichier par Dossier, la source devient une source web.content
que dois-je mettre à la place de web?

let
Dossier=Excel.CurrentWorkBook(){[Name="chemin"]}[Content]{0},
Source = Csv.Document(Web.Contents("Dossier"),[Delimiter=";", Columns=90, Encoding=1252, QuoteStyle=QuoteStyle.Csv]),

et il m'affiche une autre erreur :

Expression.Error : Le nom « Excel.CurrentWorkBook » n'a pas été reconnu. Veuillez vérifier qu'il est correctement orthographié.

merci d'avance

Cordialement,
 

chris

XLDnaute Barbatruc
Re

J'avais oublié [Column1]
VB:
    Dossier=Excel.CurrentWorkbook(){[Name="Chemin"]}[Content][Column1]{0},
    Source = Csv.Document(File.Contents(Dossier&"base_de_donnée.csv"),[Delimiter=";", Columns=16, Encoding=1252, QuoteStyle=QuoteStyle.None]),
 

Pièces jointes

  • test.xlsx
    14.6 KB · Affichages: 29

Discussions similaires

Réponses
7
Affichages
283
Réponses
13
Affichages
495

Statistiques des forums

Discussions
312 156
Messages
2 085 814
Membres
102 990
dernier inscrit
franckfevrier