tech on the net
Home About Us Feedback Site Map

Microsoft

Access Excel Word

Database

SQL Oracle / PLSQL SQL Server MySQL MariaDB PostgreSQL

Web Development

HTML CSS Color Picker

Language

C Language

More

ASCII Table Linux UNIX Java Clipart Joke of the Moment
Share this page:

MS Excel: Automatically refresh pivot table when data in a sheet changes in Excel 2003/XP/2000/97

Question: In Microsoft Excel 2003/XP/2000/97, I'm looking for a macro that would automatically refresh a pivot table whenever data is changed in an Excel worksheet. Is this possible?

Answer: There are several "events" available within an Excel spreadsheet where you can place VBA code. In your case, we want to refresh the pivot table when the "Worksheet_Calculate" event fires.

Let's look at an example.

Download Excel spreadsheet (as demonstrated below)

Microsoft Excel

In our spreadsheet, there are two sheets - one is called Data which contains the source data for the pivot table. Another sheet is called Pivot which contains the pivot table.

On the sheet called Data, we've placed code on the "Worksheet_Calculate" event, so that whenever the data changes on the "Data" sheet, the pivot table will be refreshed.

You can press Alt-F11 to view the VBA code.

Note: This only will work, if you have the spreadsheet set to calculate "automatically". This is the default for most Excel spreadsheets, but some people turn this feature off.

Macro Code

The macro code looks like this:

Private Sub Worksheet_Calculate()

   'If data on this worksheet changes, refresh the pivot table
   Sheets("Pivot").PivotTables("PivotTable1").RefreshTable
   
End Sub