Automatyczne odświeżanie tabeli przestawnej
Tabele przestawne nie mają (poza odświeżaniem przy otwarciu zeszytu) opcji automatycznego odswieżania wraz ze zmianą danych źródłowych.
Pewnym rozwiązaniem może być zastosowanie kodu VBA zdarzenie uaktywnienia arkusza.
Kod oczywiście umieszczamy w module arkusza w którym znajduje się tabela.
Private Sub Worksheet_Activate()
Dim mysheet As Worksheet
'definiujemy w którym arkuszu sa dane źródłowe
Set mysheet = Sheets("Dane")
Application.ScreenUpdating = False
'przypisujemy adres zakresu w jakim są dane źródłowe
'(przy założeniu, że komórka A1 znajduje się w zakresie danych źródłowych)
myrange = mysheet.Name & "!" & _
mysheet.Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1)
'przypisujemy zakres danych źródłowych tabeli przestawnej
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:=myrange
'odświeżamy tabelę przestawną
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
'ukrywamy paski narzędzi związanych z tabelą przestawną
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
Application.ScreenUpdating = True
End Sub