Witam.
Przetestuj kod:
Private Sub Worksheet_Activate()
Dim mysheet As Worksheet
Dim myRangeAddress As String
Dim myPivotTable As PivotTable
Application.ScreenUpdating = False
'definiujemy w którym arkuszu sa dane źródłowe
Set mysheet = Sheets("Arkusz1")
'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)
myRangeAddress = mysheet.Name & "!" & _
mysheet.Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1)
Set myPivotTable = ActiveSheet.PivotTables(1)
With myPivotTable.PivotCache
'przypisujemy zakres danych źródłowych tabeli przestawnej
.SourceData = myRangeAddress
'odświeżamy bufor tabeli przestawnej
.Refresh
End With
'ukrywamy paski narzędzi związanych z tabelą przestawną
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
Application.ScreenUpdating = True
End Sub
Pzdr |