Pour certains types d’analyse de données, les tableaux croisés dynamiques peuvent être très utiles. Si vous disposez d’un classeur qui contient plusieurs tableaux croisés dynamiques, tous basés sur les mêmes données, vous pouvez vous demander s’il existe un moyen de les mettre à jour tous en même temps, plutôt que de les parcourir individuellement et de les mettre à jour.

Il n’existe aucune commande Excel qui vous permet de mettre à jour tous les tableaux croisés dynamiques, mais vous pouvez créer une courte macro qui fera le travail pour vous. La macro suivante, RefreshAllPivots, parcourt chaque feuille de calcul dans un classeur, vérifie s’il existe des tableaux croisés dynamiques, puis les met à jour le cas échéant.

Sub RefreshAllPivots()

Dim wks As Worksheet     Dim pt As PivotTable

For Each wks In Worksheets         For Each pt In wks.PivotTables             pt.RefreshTable         Next pt     Next wks End Sub

Si vous travaillez beaucoup avec plusieurs tableaux croisés dynamiques, vous souhaiterez peut-être attribuer la macro à une touche de raccourci, à un bouton de barre d’outils ou à une option de menu afin de pouvoir l’exécuter plus facilement. (Les informations sur la façon d’attribuer des macros aux barres d’outils, aux touches de raccourci et aux menus sont couvertes dans d’autres numéros de ExcelTips.)

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2287) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Updating_Multiple_PivotTables_at_Once [Mise à jour de plusieurs tableaux croisés dynamiques à la fois].