VBA Excel - Manipulando Tabela Dinâmica - Refresh Pivot Table

Quando estamos efetuando nossas implementações em Dashboards e preocupados com a performance das suas atualizações, também passa por nossas cabeças a necessidade de que sejam dinâmicos. Para isso torna-se imprescindível saber atualizar as nossas Pivot Tables (Tabelas Dinâmicas) utilizando o VBA. Como fazê-lo?


Quando a planilha for aberta ela pode automaticamente evocar um código que atualize todas as PT (Pivot Table) da nossa planilha

Sub Worksheet_Activate()

    Run "PT_Refresh" 

End Sub


Atualizando uma PT simples:

Sub PT_Refresh()

    Dim pt As PivotTable

    Set pt = ActiveSheet.PivotTables("MyPivot")

    pt.RefreshTable

End Sub

Atualizando várias PTs:

Sub AllWorksheetPTs()

    Dim pt As PivotTable

    For Each pt In ActiveSheet.PivotTables

        pt.RefreshTable

    Next pt

End Sub

Atualiza todas as PTs selecionadas na worksheet:

Sub ChosenPTs()

    Dim pt As PivotTable

    For Each pt In ActiveSheet.PivotTables  

        Select Case pt.Name

            Case "PivotTable1", "PivotTable4", "PivotTable8"

                pt.RefreshTable

            Case Else

        End Select

    Next pt

End Sub


Atualizando PTs selecionadas previamente na planilha:

Sub AllWorkbookPTs()  
    Dim pt As PivotTable
    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets

        For Each pt In ws.PivotTables

            pt.RefreshTable
        Next pt

    Next ws
End Sub

Talvez você deseja executar um procedimento após a atualização de um PT, como por exemplo enviar por e-mail, atualizar uma base de dados externa, etc...Como automatizar isso?

Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
     Call ClonaPivot
End Sub

Tags: VBA, PT, Pivot Table, Tabela Dinâmica, refresh, table, workbook, worksheet, automation

André Luiz Bernardes
A&A® - Work smart, not hard.


Nenhum comentário:

Postar um comentário

diHITT - Notícias