For certain types of data analysis, PivotTables can be very handy. If you have a workbook that contains several PivotTables, all based on the same data, you may wonder if there is a way to update them all at once, rather than going through them individually and updating them.
There is no Excel command that allows you to update all PivotTables, but you can create a short macro that will do the job for you. The following macro, RefreshAllPivots, steps through each worksheet in a workbook, checks to see if there are any PivotTables, and then updates them if there are.
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
If you do a lot of work with multiple PivotTables, you may want to assign the macro to a shortcut key or the Quick Access Toolbar so that you can run it easier.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (5675) applies to Microsoft Excel 2007, 2010, and 2013. You can find a version of this tip for the older menu interface of Excel here: Updating Multiple PivotTables at Once.
Solve Real Business Problems Master business modeling and analysis techniques with Excel and transform data into bottom-line results. This hands-on, scenario-focused guide shows you how to use the latest Excel tools to integrate data from multiple tables. Check out Microsoft Excel 2013 Data Analysis and Business Modeling today!
Wish there was a way to define how you want PivotTables formatted before you actually create the PivotTable? You may be ...
Discover MorePivotTables are a great way to work with large quantities of data in an intelligent manner. Sometimes, however, you just ...
Discover MorePivotTables are great for digesting and analyzing huge amounts of data. But what if you want part of that data excluded, ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2020-07-23 09:45:01
Jen
Seems like this was written at least as far back as 2013, based on the comments, and then has just been republished several times, even though it's outdated information. C'mon Allen, I expected better from you.
2020-07-23 05:00:14
Michael Williams
Dear,
I always use "Refresh All" which I added from the list of all commands to the Quick Access Toolbar. Same result.
Michael
2020-07-23 03:56:27
Mike Hodkinson
Hi Allen
Thanks for sharing.
Another potential way of doing this is to use
ThisWorkbook.RefreshAll
or
ActiveWorkbook.RefreshAll
This code line is very simple and refreshes all Pivot Tables in the workbook and also refreshes all other external connections.
You can add this line in you code after all your VBA code creating Pivot Tables / amending them.
2016-04-29 13:19:18
Michael (Micky) Avidan
@Wim Torfs,
In order to refresh ALL(!) Pivots in the selected Workheet you can use the following Macro:
---------------------------------------
Sub RefreshAllPivots()
For Each PT In ActiveWorkSheet.PivotCaches
PT.Refresh
Next
End Sub
---------------------------------------
If you need to refresh multiple pivots in Multiple Sheets - replace the: ActiveWorkSheet with: ActiveWorkbook
--------------------------
Michael (Micky) Avidan
“Microsoft® Answers" - Wiki author & Forums Moderator
“Microsoft®” MVP – Excel (2009-2016)
ISRAEL
2016-04-28 08:49:13
Wim Torfs
Better place this macro in the sheet with your pivot tables
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
End Sub
Then the pivot tables are automatically refreshed
2016-04-28 08:33:16
Jeaux
LOVE your email tips, but I believe this is outdated. Refresh All works with one click- no need for a macro.
2016-04-28 08:03:27
Ricardo
Philip is right, all you need to do is refresh one, as long as they are linked to the same source data.
In Excel 2003 and previous versions, it also works if you link the second and next pivot tables to another PT.
2016-04-28 07:47:42
Philip
If you set create the 2nd, 3rd, ... pivot table by referring to the first one you create (they're all linking the same set of source data), then refreshing one pivot will refresh all in one go ...
2016-04-28 07:31:16
Michael (Micky) Avidan
As far as I recall, one doesn't need to use a ribbon option.
Hitting: Ctrl+Alt+F5 will "do the job".
--------------------------
Michael (Micky) Avidan
“Microsoft® Answers" - Wiki author & Forums Moderator
“Microsoft®” MVP – Excel (2009-2016)
ISRAEL
2016-04-28 07:23:54
JoAnn Paules
Refresh All does that and even works on pivot tables on hidden sheets. I use that everyday. I think it was added in Excel 2007.
2015-11-23 14:07:46
kerry
Where do i go to add the macro? How do i do this? is there a link to where i can find this info on your site?
Thanks!
2013-09-25 14:28:26
Art
I don't get it. Why can't you just use the "Refresh All" button in the Data tab? Seems to work for me.
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2022 Sharon Parq Associates, Inc.
Comments