XL 2019 Power Query et VBA

bambi

XLDnaute Occasionnel
J'ai une petit question à propos de PowerQuery
j'ai créé une requete approfondie pour un fichier cvs

Mais deux choses me bloquent:
- Je ne parviens pas à appliquer ces requetes à un autre fichier csv , je ne comprends pas du tout comment faire
- J'ai d'autres commandes à ajouter, non prises en charge par power query, donc je me demandais s'il était possible d'appeler et d'éxécuter toutes mes requetes Power Query dans une macro VBA

merci d'avance
 

chris

XLDnaute Barbatruc
Bonjour

Le plus simple est de prévoir dans une cellule nommée, dont le contenu est modifiable par VBA, le chemin et nom du fichier CSV et d'utiliser cette cellule en lieu et place du nom en dur dans l'étape Source de la requête

Par exemple remplacer la partie "T:\TEMP\toto.csv" (guillemets compris) par
Excel.CurrentWorkbook(){[Name="Fichier"]}[Content][Column1]{0}
Fichier est le nom de la cellule nommée

L'actualisation des requêtes se fait en VBA par ThisWorkbook.RefrehAll
 

bambi

XLDnaute Occasionnel
Merci de ta réponse @chris
ça va finalement être plus compliqué que je ne le voulais
Car mon fichier csv n'est jamais le même, et je ne peux pas du tout en prévoir le nom à l'avance
Je crois que je vais rester en vba pour cette fois ci ;)
 

merinos

XLDnaute Accro
Salut Bambi,

Je suppose que tu veux importer une serie de CSV semblables...

tu peux transformer ton query en fonction.
puis tu emploie un autre query qui selectionne les fichiers qui doivent être importés.
Tu ajoutes une colonne qui fait appel a ta fonction.

tu ouvre la colonne et tu dispose te tous les CSV en un seul datamodel.

Dans cet exemple, tu trouvera plusieurs query:
fctnParameter : lis un parametre (utilisé pour lire le chemin vers les fichiers)
DataCustomers: le query d'import crée pour lire UN SEUL fichier
AllDocs : query qui selectionne les fichiers
fctn_dataCustomers: fonction batie sur le query DataCustomer par modification dans l'editeur avancé
end_result: demarre avecla liste des fichiers y ajoute la colonne (fctnDataCustomers) puis l'ouvre.

j'emploie ce type de methode pour assembles 18 millions de lignes dans un modele et pouvoir pivoter sur le tout.
 

Discussions similaires

Réponses
13
Affichages
474