Excel VBA: Refresh Pivot Tables - Atualizando Tabelas Dinâmicas

As Tabelas Dinâmicas (Pivot Tables) têm se tornado ferramentas de produtividade muito preciosas ao passo que mais e mais usuários aprendem a como tirar o máximo proveito de suas características. Essas ficam ainda mais interessantes quando fazemos uso de alguma codificação VBA. Abaixo seguem alguns código que facilitam a manipulação dos dados contidos em nossas Tabelas Dinâmicas (Pivot Tables). ATUALIZANDO UMA TABELA DINÂMICA SIMPLES (Refresh a Single Pivot Table):




Sub SetupPivot()
    Dim nPT As PivotTable

    Set nPT = ActiveSheet.PivotTables("PT001")
 
    nPT.RefreshTable
End Sub

ATUALIZANDO TODAS AS TABELAS DINÂMICAS NUMA WOKSHEET (Refresh all Pivot Tables in a Worksheet):




Sub SetupAllPivotsWorksheet()
    Dim nPT As PivotTable
 
    For Each nPT In ActiveSheet.PivotTables
        nPT.RefreshTable
    Next nPT
End Sub

ATUALIZANDO TODAS AS TABELAS DINÂMICAS PRÉ-SELCIONADAS NUMA WOKSHEET (Refresh Chosen Pivot Tables in a Worksheet):  

Sub AllChosenPivotswSheet()     Dim nPT As PivotTable
    For Each nPT In ActiveSheet.PivotTables
        Select Case nPT.Name
            Case "PT001", "PT005", "PT009"
                 nPT.RefreshTable
            Case Else
        End Select
    Next pt
End Sub

ATUALIZANDO TODAS AS TABELAS DINÂMICAS PRÉ-EXISTENTES NUM WORKBOOK (Refresh All Chosen Pivot Tables in a Workbook):

Sub AllChosenPivotswBook()
    Dim nPT As PivotTable
    Dim nWS As Worksheet
 
    For Each nWS In ActiveWorkbook.Worksheets    
        For Each nPT In nWS.PivotTables
                    nPT.RefreshTable
        Next nPT
    Next nWS
End Sub


ATUALIZANDO TODAS AS QUERYTABLES PRÉ-EXISTENTES NUM WORKBOOK (Refresh All QueryTable instead):

Sub AllChosenPivotswBook()
     Dim qryTbl As QueryTable
    Dim nWS As Worksheet
 
    For Each nWS In  ActiveWorkbook.Worksheets
                  For Each qryTbl In nWS.QueryTables
                                 qryTbl.Refresh BackgroundQuery:=False
                  Next qryTbl
    Next nWS
End Sub
 
ATUALIZA TODAS AS TABELAS DINÂMICAS NUMA WOKSHEET QUANDO ESTA FOR ALTERADA (Automatically refresh pivot table when data in a sheet changes in Excel):

Baixe planilha para teste.

 Private Sub Worksheet_Calculate()        

Sheets("PT001").PivotTables("PivotTable001").RefreshTable

 End Sub

diHITT - Notícias