Actualiser Requêtes et TCD

Bonjour,

J'ai, dans une même fichier Excel, une requête qui regroupe les données de 6 tableaux différents (dans le même fichier) et plusieurs Tableaux croisés dynamiques utilisant les données de ma requête.

Pour vactualiser les TDC je suis obligé de passer par 3 opérations :

1)"Enregistrer" le fichier,

2) "Actualiser tout" pour actualiser la requête

3) à nouveau "Actualiser tout" ou "Actualiser" pour actualiser les TDC.

J'ai mis en place deux boutons et 2 macro pour faire ces opérations :

ActiveWorkbook.Save

ActiveWorkbook.RefreshAll

et

Range("B5").Select

ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh

Cela fonctionne.

Par contre, lorsque je veux regrouper le tout en une seule macro, mes TCD ne sont plus actualisés

ActiveWorkbook.Save

ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh

Merci d'avance pour votre aide

Bonjour et

Si les TCD ont la même source de données, l'actualisation d'un TCD actualise les autres.

Sinon, liste dans ta macro les différents TCD à actualiser.

Pour aller plus loin

Bonjour à tous

ActiveWorkbook.RefreshAll actualise tout, toutes les requêtes et tout les TCD

Si tu es obligé d'enregistrer le fichier c'est que ta requête pointe sur le fichier .xlsm et non sur son contenu donc qu'il lit sur le disque et non en temps réél le contenu

Bonjour Merci pour vos réponses

J'ai joint le fichier

Steelson, mes TCD s'actualisent bien tous ensembles

78Chris,

Dans mon fichier je suis obliger d'activer 2 fois "Actualiser tout" (qui doit être la même commande que ActiveWorkbook.RefreshAll ?) pour que actualiser les Requêtes puis le TDC.

J'ai construit les requêtes avec Microsoft Power Query et je pense qu'elles pointent vers des tableaux (T_1, T_2, T_3, etc ...) ?

Je ne maitrise pas vraiment le VBA

Ce qui me chiffonne, c'est que le fichier que tu postes est un fichier xlsx ! où sont les macros d'actualisation dont tu parles ?

Si j'ai bien compris elles sont dans le fichier

Je les ai créer en allant dans "Développeur" puis "Enregistrer une macro" et j'ai spécifié "enregitrer la macro dans ce classeur"

Non, elles n'y sont pas

capture d ecran 567

En effet, mon classeur était trop lourd pour pouvoir le télécharger. J'ai fait une copie et elle va chercher les macros dans un autre classeur ...

Il faut donc que je fasse une autre version. C'est un peu long car il faut refaire les requetes. Je m'y colle

Mai est-ce que normalement "Actualiser tout" ne dervrait pas m'éviter de créer des macros pour "actualiser tout" ?

Fais une copie de ton fichier sans l'ouvrir, et ensuite supprime les données sensibles

Bonjour,

Une contribution, de ce que je comprends.

Cdlt.

Public Sub RefreshQueriesAndPivotTables()
Dim cn As WorkbookConnection
    For Each cn In ThisWorkbook.Connections
        With cn.OLEDBConnection
            .BackgroundQuery = False
            .Refresh
        End With
    Next cn
    '1 PivotCache pour 6 pivot tables
    ThisWorkbook.Worksheets("Synth Partenaire").PivotTables(1).PivotCache.Refresh
End Sub

Vola le fichier allegé

Merci Jean-Eric

Apparemment ça bloque (voir l'image jointe)

capture

J'abandonne ...

capture d ecran 569 capture d ecran 570

Re,

Fonctionnel pour moi !...

As-tu d'autres connexions ou requêtes (pas Power Query) ?

Cdlt.

j abandonne aussi

Merci pour votre patience

Rechercher des sujets similaires à "actualiser requetes tcd"