Power query, tester la fin de MàJ

Bonjour à tous,

J'ai un programme VBA qui tourne avec Power query mais je voudrais être certain que la mise à jour de power query soit terminée avant de lancer mon traitement.

Y a-t-il une variable ou une méthode pour s'assurer de la fin de MàJ?

par avance merci

JPaul

Bonjour jpaul78

Est-ce que vous lancer la MàJ PQ via VBA ?

A+

Bonjour BrunoM45,

oui je peux lancer un refreshAll via vba. Mais c'est aussi à l'ouverture du fichier car j'ai forcé la mise à jour de powerquery à l'ouverture du fichier .

Jpaul

Bonjour à tous

En général il suffit de désactiver pour toutes les requêtes l'actualisation en arrière-plan pour le VBA n'enchaîne pas avant

Je pense donc aussi que le Refresh devrait être lancé par VBA

Bonjour chris78,

Merci de ton retour

Je ne suis pas sur de comprendre car je souhaite faire la MàJ avant mon traitement. Je peux lancer ce traitement via VBA (c'est ce que je fais dans certain cas) mais je ne sais pas quand ce dernier sera terminé pour lancer mon Pgm de traitement des données.

JP

Re,

Voici l'idée je pense, ci-dessous un code qui permet de rafraichir les requêtes d'un classeur,
on peut alors lancer un code après chaque actualisation

Public Sub RefreshQueries()
  Dim ws As Worksheet, qt As QueryTable
    For Each ws In ActiveWorkbook.Worksheets
        For Each qt In ws.QueryTables
            qt.refresh BackgroundQuery:=False
            ' Ici le code à lancer après traitement
            Call CodeALAncer
        Next qt
    Next ws
End Sub

A+

RE

Il n'est pas indispensable de désactiver par VBA la mise à jour en arrière plan.

Pour ma part je le fais manuellement lors de la création de requête soit parce que le volume est important, soit pour des traitements VBA liés.

C'est un réflexe à prendre. Clic droit sur le nom de la requête dans le volet Excel listant les requêtes et Propriétés

@ BrunoM45,

Merci de ta proposition, mais j'ai un soucis car lorsque je la fais tourner, qt reste à nothing. une idée?

@78chris,

Je les avait déjà modifiées pour les mettre à l'ouverture du fichier mais je vais le désactiver totalement et lancer un refresh puis mes traitements.

Merci

JP

Bonjour

@ BrunoM45,

Merci de ta proposition, mais j'ai un soucis car lorsque je la fais tourner, qt reste à nothing. une idée?

Dans le cas de PowerQuery, les QueryTable appartiennent, il me semble, au tableau structuré contenant le résultat, pas à l'onglet

Coucou 78chris,

Effectivement, j'ai donné ça à l'arrache, c'était juste pour donner l'idée

La bonne syntaxe est

ActiveSheet.ListObject.QueryTable.Refresh
' Appeler ici le code de traitement

A+

Bonsoir BrunoM45,

Merci de ton retour par contre je ne sais par l'exploiter en effet, j'ai beau chercher je n'arrive pas à retranscrire ton petit pgm "RefreshQueries" avec ta nouvelle syntaxe. "ActiveSheet.ListObject.QueryTable.Refresh"

Dois-je supprimer la boucle "For Each qt In ws.QueryTables" et la remplacer par "ActiveSheet.ListObject.QueryTable.Refresh"

Par avance merci de tes éclaircissements

JPaul

Rechercher des sujets similaires à "power query tester fin maj"