Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 [Résolu] Actualiser requête PowerQuery et TCD à la suite

jmh1

XLDnaute Occasionnel
Bonjour,

J'ai un fichier avec des datas, j'ai créé une requête pour fusionner 2 bases de données et j'ai créé un Graphique croisé dynamique à partir de cette requête. Jusque là tout va bien !

J'ai ensuite créé une macro VBA pour actualiser la requête et le GCD et là, rien ne va plus. Je suis obligé de cliquer 2 fois sur le bouton pour pour que tout soit à jour. J'ai l'impression que le premier clic met à jour la requête et que je suis obligé de refaire un clic pour actualiser le GCD.

Ci-dessous le code :

VB:
Sub Actualiser()
   
    'Actualisation de la requête
    ActiveWorkbook.Connections("Requête - Fusionner1").Refresh
   
    'Actualisation de TCD
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
   
End Sub

J'ai essayé de mettre une tempo entre les 2 actualisations mais rien n'y fait, je suis toujours obligé de cliquer 2 fois pour que tout soit à jour.

Quelqu'un connait-il ce problème ou comment puis-je le résoudre ?

Merci d'avance
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

GCD ou TCD ? Vous parlez de GCD mais votre macro concerne un TCD !

Vous avez essayé :
ThisWorkbook.RefreshAll
?

Normalement si le TCD a pour Source la requête, rafraîchir son pivotcache devrait être suffisant à faire rafraîchir la requête.

Sinon, sans le fichier....
 

WTF

XLDnaute Impliqué
Bonjour jmh1,
Je penses qu'il s'agit en effet d'un sujet de temporalité.
Quand tu actualise une requête PwrQwery elle met toujours plusieurs secondes (minutes) à se mettre à jour en fonction des différentes sources de données.

Donc quand tu actualise ton GCD, les données sous jacentes sont ne sont probablement pas encore mises à jour.
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Ou désactiver la propriété "Actualisation en arrière-plan" dans les propriétés de la requête?
Ce qui en VBA donnerait :
VB:
Sheets("Feuil1").ListObjects(1).QueryTable.Refresh (False)
(Variables à adapter à ton fichier)
 

Hasco

XLDnaute Barbatruc
Repose en paix
RE,

Hello @bhbh
je me suis demandé s'il y avait un tableau résultat de la requête ou directement de la requête au tcd ou gcd ?! je ne sais pas.
S'il y en a un on peut gérer l'évènement After_Refresh sinon peut-être qu'en agissant sur .BackGroundQuery de .PivotCache ???

J'attends de voir ce que va nous dire @jmh1
 

Discussions similaires

Réponses
3
Affichages
306
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…