Odświeżanie wszystkich tabel przestawnych VBA Excel

Jak odświeżyć wszystkie tabele przestawne makrem w VBA?

Odświeżanie tabel przestawnych VBA to dobry sposób, by zautomatyzować nasze aplikacje. Naszym zadaniem jest odświeżenie wszystkich tabel przestawnych w skoroszycie Excel. Posłuży nam do tego proste makro. Jeśli nie ma dla nas większego znaczenia to, czy odświeżamy tabele przestawne, czy też połączenia danych, możemy skorzystać z poniższego przykładu. Skrypt odświeży wszystkie połączenia danych oraz tabele przestawne w naszym skoroszycie.

Sub RefreshAll()
ActiveWorkbook.RefreshAll
End Sub

Samo działanie makra możemy porównać do działania przycisku „Odśwież” w zakładce „Dane”.

Odświeżanie tabel przestawnych VBA
Odświeżanie tabel przestawnych VBA

W przypadku, gdybyś chciał odświeżać tylko i wyłączenie tabele przestawne, konieczne było by powielenie wiele razy skryptu odświeżającego zaadresowane tabele. Skrypt wymaga podania nazwy tabeli przestawnej, którą chcemy odświeżyć. Nazwę tą znajdziemy w zakładce „OPCJE” po zaznaczeniu danej tabeli przestawnej:

Sub RefreshOnePivot()
ActiveSheet.PivotTables("Pivot_tab_name_1").PivotCache.Refresh
End Sub

Jeśli nasz raport zawiera więcej tabel przestawnych lub też istnieje możliwość, że w przyszłości liczba tych tabel się zwiększy, możemy zastosować makro, które wyszukuje wszystkie tabele przestawne w naszym skoroszycie, a następnie je odświeża. Zastosowanie poniższego przykładu jest najbardziej polecane:

Sub RefreshAllPivot()
Dim PT As PivotTable
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each PT In WS.PivotTables
PT.RefreshTable
Next PT
Next WS
End Sub
Odświeżanie wszystkich tabel przestawnych VBA Excel
Odświeżanie wszystkich tabel przestawnych VBA Excel

Jeśli chciałbyś znaleźć również makro odświeżające połączenia danych będące źródłem dla Twoich tabel przestawnych, to rozwiązanie znajdziesz w tym artykule. Poniżej plik z przykładem: Makro odświeżanie tabel przestawnych VBA:

odświeżanie_tabel_przestawnych_vba_excel

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *