Actualisation de tous les tableaux croisés dynamiques dans mon classeur excel avec une macro
J'ai un classeur avec 20 différents tableaux croisés dynamiques. Est-il un moyen facile de trouver tous les tableaux croisés dynamiques et de les actualiser en VBA?
Vous devez vous connecter pour publier un commentaire.
Oui.
Ou, si votre version de microsoft Excel est assez vieux,
ThisWorkbook.RefreshAll
méthode pour une raison quelconque ne fonctionne, siApplication.Calculation = xlCalculationManual
. Définissez le calcul de la propriété àApplication.Calculation = xlCalculationAutomatic
avant d'utiliser le code.Update
après laRefreshTable
? quelle est la différence entre les deux?ThisWorkbook.RefreshAll
à l'intérieur de laWorksheet_Change
cas je obtenir un débordement de pile. Changer l'ActiveWorkbook
résolu le problème.Ce code VBA permettra d'actualiser tous les tableaux croisés dynamiques et graphiques dans le classeur.
Un autre non-programatic option est:
Cela actualiser le tableau croisé dynamique à chaque fois que le classeur est ouvert.
ActiveWorkbook.RefreshAll
rafraîchit tout, non seulement les tableaux croisés dynamiques, mais aussi les requêtes ODBC. J'ai un couple de VBA requêtes qui renvoient à des connexions de Données et l'utilisation de cette option se bloque, comme la commande exécute les connexions de Données sans le détail fourni par le VBAJe recommande l'option si vous ne souhaitez que des pivots rafraîchi
Dans certaines circonstances, vous pourriez vouloir faire la différence entre un tableau croisé dynamique et de ses PivotCache. Le Cache a sa propre méthode d'actualisation et de ses propres collections. Nous avons donc pu avoir actualisé tous les PivotCaches à la place des Tableaux croisés dynamiques.
La différence? Lorsque vous créez un Tableau croisé dynamique vous est demandé si vous voulez sur la base d'un tableau précédent. Si vous dites non, ce Tableau croisé dynamique obtient son propre cache et double la taille de la source de données. Si vous dites oui, vous gardez votre Classeur petit, mais vous ajouter à une collection de Tableaux croisés dynamiques qui partagent une même cache. L'ensemble de la collection sera mise à jour lors de l'actualisation d'une seule de Tableau croisé dynamique dans cette collection. Vous imaginez donc quelle est la différence peut-être entre rafraîchissante chaque cache dans le Classeur, par rapport à rafraîchissant chaque Tableau croisé dynamique dans le Classeur.
Il y a une actualisation toutes les options dans la barre d'outils Tableau croisé dynamique. C'en est assez. N'avez pas à faire autre chose.
Appuyez sur ctrl+alt+F5
Vous avez un Tableaux croisés dynamiques collection sur le VB Feuille de calcul objet. Donc, une petite boucle de ce genre de travail:
Notes de la tranchée:
Bonne chance!
Le code
fonctionne très bien.
Le code est utilisé dans l'activer feuille de module, donc il affiche un scintillement/glitch quand la feuille est activée.
Même nous rafraîchir la connexion et, en retour, il va vous rafraîchir tous les pivots sont liés.
Pour ce code, j'ai créé trancheuse de table présente dans Excel:
J'ai utiliser la commande ci-dessous dans le passé récent, et il semble bien fonctionner.
Espère que ça aide.
Si vous êtes à l'aide de MS Excel 2003 puis allez dans affichage->barre d'outils->Tableau croisé dynamique à Partir de cette barre d'outils que nous pouvons faire actualiser en cliquant ! ce symbole.