XL 2016 Powerquery, Dropbox, actualisation requête depuis des ordinateurs différents

AlRawlin

XLDnaute Nouveau
Bonjour à tous !

Pour éditer le catalogue de mon entreprise de manière automatique, j'utilise un fichier Excel qui se met à jour à l'aide de requêtes PowerQuery dont la source est un export de mon ERP, lui aussi sous format Excel et que j'appelle Base Article.
Ceci me permet de mettre à jour le catalogue en un clic après avoir téléchargé ma Base Article à jour.

Le catalogue comme la Base Article sont situés dans un dossier Dropbox que je partage avec mon associé.

Le seul bémol de ce système c'est que mon associé ne peut pas mettre à jour le Catalogue depuis son ordinateur bien qu'il ait accès lui aussi au répertoire Dropbox.

Est il possible, avec PowerQuery d'ajouter une variable pour que le chemin du fichier source change en fonction de l'ordinateur utilisé ?
J'ai essayé quelques recherches avec les mots clés Dropbox et Powerquery mais je n'ai trouvé aucune discussion évoquant cette problématique.

Je vous remercie d'avance pour votre aide.
Cordialement
Alexis
 

Dim.Reichart

XLDnaute Occasionnel
Bonjour,
Tu devrais pouvoir tester l'username ou le nom du PC en début de macro, et selon la réponse, affecter un chemin différent pour chercher le dossier.
Mais je pense qu'il serait plus simple d'avoir la même architecture de stockage des dossiers, afin que le chemin soit modifié le moins possible.
SI le dossier est stocké au même endroit que le fichier excel, tu devrais pouvoir utiliser thisworkbook.path qui renvoie l'adresse du classeur excel ouvert, il n'y a plus qu'a ajouter le nom du fichier cherché pour completer, quel que soit l'endroit du PC où c'est rangé.
 

AlRawlin

XLDnaute Nouveau
Bonjour,
Merci de m'avoir mis sur la bonne piste, le problème est résolu !

Effectivement c'est beaucoup plus simple en mettant la Base Article et le Catalogue dans le même dossier.

Après cette étape, créé l’événement suivant pour renseigner le chemin du dossier dans une cellule nommée "root" :
Code:
Private Sub Workbook_Open()
Dim root As String

root = ActiveWorkbook.Path

Range("root").Value = root
'root is the named range used in power query.
End Sub
NB : Plutôt qu'utiliser du VBA il est aussi possible d'obtenir le chemin du fichier avec une formule

Je n'avais ensuite plus qu'à modifier ma requête powerquery comme ceci :
Code:
let
    root = Excel.CurrentWorkbook(){[Name="root"]}[Content]{0}[Column1],
    FullPathToFile1 = root & "\export_produit_1.xlsx",   
    Source = Excel.Workbook(File.Contents(FullPathToFile1), null, true),
[...]

Encore une fois, un grand merci pour ton aide Dim.Reichart
 

Discussions similaires

Réponses
3
Affichages
1 K

Statistiques des forums

Discussions
315 093
Messages
2 116 137
Membres
112 668
dernier inscrit
foyoman