[VBA] .Refresh des requêtes Power Query
Bonjour,
J'utilise 3 requêtes PowerQuery pour charger et mettre en forme des plages de données.
Pour les recharger automatiquement (dans le cas où l'une d'entre-elles seraient mise à jour), j'utilise le bouton d'un UserForm où je lance cette macro :
ThisWorkbook.RefreshAllLe problème, c'est qu'à chaque fois, il me relance les "connexions uniquement".
Ce que j'aimerais c'est que les requêtes soient exécutées et que les tableaux soient chargés dans des feuilles prédéfinies.
J'ai testé différentes solutions du, par exemple :
ActiveWorkbook.Connections(valeur de la boucle).ODBCConnection.Refresh
ActiveWorkbook.Connections(valeur de la boucle).OLEDBConnection.Refresh
A chaque fois, seule la connexion est faite, et je dois aller dans chaque requête et lui indiquer de se charger dans une feuille spécifique. Du coup la macro
ThisWorkbook.RefreshAllne sert à rien.
J'ai l'impression que personne n'a ce problème dans les discussions internet...
Avez-vous une idée solutionner ce souci ?
Je peux joindre un fichier si besoin, mais je ne pense pas que ce soit nécessaire dans cette situation.
Bonne journée !
Bonjour
A chaque fois, seule la connexion est faite, et je dois aller dans chaque requête et lui indiquer de se charger dans une feuille spécifique. Du coup la macro
ThisWorkbook.RefreshAllne sert à rien.
J'ai l'impression que personne n'a ce problème dans les discussions internet...
Avez-vous une idée solutionner ce souci ?
Je peux joindre un fichier si besoin, mais je ne pense pas que ce soit nécessaire dans cette situation.
Justement si, je pense que le fichier nous aiderait à comprendre, car je ne vois pas pourquoi tu es obligé de lui indiquer la feuille
Bonsoir,
J'ai refais un document de travail, mais je n'arrive pas à le faire fonctionner... J'ai essayé de reproduire la même chose que mon document initial (qui est assez gros), avec juste l'essentiel pour illustrer mon problème, mais j'ai une erreur de téléchargement.
Je joins le document de travail, en attendant de voir pourquoi j'ai cette erreur ("Doc_travail_refresh_PowerQuery").
Je joins également une version trèèèès allégée de l'une des tables que j'importe via la requête Power Query ("BDC_STATUTS_13").
A plus tard !
Bonjour,
J'ai refais un document de travail, mais je n'arrive pas à le faire fonctionner...
C'est réglé, pour l'exemple PowerQuery ne fait rien d'autre que charger les données.
Voilà la procédure à suivre pour mon document :
- Dans l'UF qui s'affiche : Cliquer sur "Importer la BDD "STATUTS" " et sélectionner le document joint : "BDC_STATUTS_13".
Si vous ouvrez le bandeau pour voir les "Requêtes et connexions" vous constaterez qu'il est écrit "connexion uniquement" ; et là, je suis systématiquement obligé de faire un clic droit sur la requête > Charger dans > Et lui indiquer la feuille (='BDC STATUTS'!$A$1). Au final .refreshAll ne me sert à rien s'il ne relance que la connexion et ne charge pas les données.
Bonne journée !
Salut Le Drosophile
Je n'ai pas vraiment regarder comment fonctionnait ton USF
En revanche, j'ai créé 1 fonction et 1 requête dans le fichier ci-joint pour récupérer les données du fichier
La fonction, tu peux la trouver dans
J'ai créé une nouvelle cellule nommée "Accès_Cdc" pour avoir le chemin complet
Ce qui fait que le contenu (qu'il faudra modifier) arrive bien dans ta feuille CDC_STATUTS
@+
Bonsoir,
Merci pour ces informations ! Je regarde pour essayer d'intégrer la fonction à chacune des requêtes PowerQuery, sans succès pour le moment. Mais je cherche.
J'aimerais éviter de faire une fonction à part (si c'est possible) ou alors il faudra que j'en fasse une pour chaque requête.
Bonsoir,
En fait, je n'ai pas bien compris le fonctionnement de votre document.
Il comporte toujours l'erreur que j'ai, qui est que les données qui sont importées ne sont jamais chargées dans la feuille dédiée.
Actuellement, ce que fait la fonction, c'est identifier la source des données ; mais cette source est déjà trouvée, en utilisant les noms "Dossier_cdc" & "Fichier_cdc". Il n'y a pas d'erreur pour récupérer les données, pas d'erreur non plus lors de leur traitement, mais elles n'apparaissent jamais dans le document final.
Peut-être qu'il faut ajouter une ligne dans l'éditeur avancé, du type : charger dans {Name = "localisation cellule (1,1) de la feuille "BDC STATUTS"}).
Sinon, j'ai remarqué que c'est lors de l'exécution d'une de mes macro qui sert à supprimer les données de la feuille, que la requête passe de "x lignes chargées" à "Connexion uniquement".
Si je passe par VBA, c'est pour supprimer un maximum de mauvaises utilisation du document (par exemple la suppression d'une feuille, l'ajout de colonnes, ou autre). J'ai besoin, pour ce faire, de supprimer tout ce qui se trouve dans la feuille avant d'utiliser .RefreshAll.
Il faudrait donc, qu'avant l'exécution de .RefreshAll, quelque chose indique à Excel de charger les données vers la feuille souhaitée.
A plus tard
Bonsoir,
Oui, pour produire l'erreur, sélectionnez le l'ensemble des données contenues dans la feuilles ; supprimez les ; et relancer la macro. Il ne devrait y avoir aucune données d'importées.
Bonsoir,
Il y a quelque chose qui m'échappe
Vous voulez utiliser Power Query ou pas
Si c'est oui, ça ne peut pas fonctionner comme vous le souhaitez, ou alors je n'ai toujours rien compris.
Pour ma part, je laisse tomber, désolé.
Bonjour,
J'utilise PowerQuery pour importer une table dans une feuille prédéfinie.
Sauf qu'il n'est indiqué nulle part où Excel doit placer cette table, donc il ne fait rien.
Je me retrouve avec un document sans aucunes tables d'importer dès que je lance la macro.
Les tâches qui sont exécutées sont très simples :
- Supprimer le contenu de la feuille "X"
- Lancer Power Query (via .refreshAll)
- Placer les données dans la feuille "X"
C'est la 3ème étape qui ne se fait pas ; elle fonctionne la première fois, puis ne fonctionne plus après.
Je pense que l'erreur provient du fait que je supprime le contenu de la feuille "X" ; pourtant avant de réimporter une table, j'aimerais que la feuille soit vide.
Bonne journée.
