How to Refresh All Pivot Tables at Once in Excel

Believe me…

…if you can refresh all the pivot tables at once you can save a lot of time.

Yes, that’s right.

Just think like this…

You have 10 pivot tables and to refresh a single pivot table it takes 1-Sec.


10 Pivots = 10 Seconds

…there are few ways which you can use to automatically refresh it as well.

So now in this post...

I’m gonna share with you 3-Simple Ways which you can which you can use...

to refresh all the pivot tables and your time.

Top 3 Ways to Refresh all the Pivot Tables Automatically

Below are the methods which you can use to make all the pivot tables.

…so without any further ado let’s learn these methods.

1. Use “Refresh All” Button to Update all the Pivot Tables in the Workbook

"Refresh All" button is a simple and easy way refresh all the pivots tables in a workbook...

...with single click.

Refresh All Pivot Tables Manually With Single Click

All you need to do it is Go to Data Tab ➜ Connections ➜ Refresh All.

excel pivot tale tips to make you master this year

2. Automatically Refresh All the Pivots When You Open a Workbook

If you want to refresh all pivot tables on opening a workbook... can use following steps to make one time to set up for that.

Refresh All Pivot Tables On Opening A File

Below are the steps you can use to make al pivot tables auto refresh while opening a workbook.

  1. Select any of the pivot tables from your workbook.
  2. Right click on it and select “PivotTable Options".
  3. Go To Data Tab ➜ Tick Mark “Refresh Data When Opening A File”.
  4. Click OK.

3. A Simple VBA Code to Update All the Pivot Tables in a Single Click

Yes, you can use VBA as well to refresh all pivot tables.

All you have to do is just use below-mentioned code.

Sub RefreshCustomPivotTable()

With ActiveSheet






End With

End Sub

Above code will refresh all the pivot tables from your active worksheet...

...and you can also assign this macro to a button to use in a single click.

Refresh Only Specific Pivot Tables with VBA

If you have some specific pivot tables which you want to update...

...then you can use below VBA code.

Sub RefreshCustomPivotTable()

With ActiveSheet






End With

End Sub

Change the name of the pivot tables as per your workbook.

And, if you want to update these custom pivot tables every time when you open a workbook, change the name of the macro to auto_open

Sub auto_open()

With ActiveSheet






End With

End Sub

In the End,

Pivot tables are dynamic and it’s important to make them auto refresh.

And now, you have three different ways to this.

There best thing is:

By using VBA code, you can make selected pivot tables update in a single click.

I hope you found this post useful but now you need to tell me one thing. 

Which one is your favorite way for this?

Make sure to share your views with me in the comment section, I'd love to hear from you. And please, don’t forget to share this post with your friends, I am sure they will appreciate it.

You must Read these Next

  1. Connect a Single Slicer with Multiple Pivot Tables​: Let’s say you are working on a dashboard where you are using multiple pivot tables​...
  2. Automatically Update a Pivot Table Range​: Every time when you add new data in the source sheet you need to update the source range...
  3. Group Dates in a Pivot Table : Let’s say you want to group all the dates as months, so instead of adding a different column...
  4. Pivot Table Timeline​: ​With a timeline filter is you don’t need to open the filter again and again, you just do it with a...
  5. Pivot Table ​using Multiple Files: Sometimes we receive or capture our data in different workbooks and in that case​...
  6. Ranks in a Pivot Table: One of the common practices for analyzing data is by ranking them and ​in a pivot table...
  7. Running Total in a Pivot Table:​​ One of the things which I like about a pivot is we can easily add running total into it​...

About the Author

Puneet Gogia

Puneet is using Excel since his college days. He helped thousands of people to understand the power of the spreadsheets and learn Microsoft Excel. You can find him online, tweeting about Excel, on a running track, or sometimes hiking up a mountain.

LinkedIn - YouTube

12 thoughts

Leave a Comment

Your email address will not be published.

    If ‘separate’ pivot tables then simple – data refresh all is simplest
    If pivot tables created ‘linked’ using same data then refresh on one pivot table sufficient to enable all associated pivot tables to be updated. (good practice)
    Option to have refresh set when opening file although it appears simple solution it can and ‘does’ result in a delay in opening files, hence first option ‘data refresh all’ avoids this problem.

  2. Actually I found it useful to add the following code added to the Worksheet Activate event for every sheet containing pivot table/s:
    For Each pt In ActiveSheet.PivotTables
    Next pt

    • This is also my usual method. Means you never look at a pivot table that is out of step with the data. Pity Excel does not give you that option natively, like it does at “open” time.

  3. I’ve had refresh issues with power query and a pivot table whereby the details of the pivot table was cleared out with your suggestions. The only option was to use power pivot. I am guessing it is a sequence thing. Have you had any experience with this?

  4. @Beth
    There’s just a minor typo in it. “PC” needs to be on the next line, so it reads “PC.Refresh”

    Sub RefreshAllPivots()
    Dim PC As PivotCache
    For Each PC In ActiveWorkbook.PivotCaches
    Next PC
    End Sub

  5. This code:
    Sub RefreshAllPivots()
    Dim PC As PivotCache
    For Each PC In ActiveWorkbook.PivotCachesPC
    Next PC
    End Sub

    Returns “Compile error: Invalid or unqualified reference” on the .Refresh