Quando a planilha for aberta ela pode automaticamente evocar um código que atualize todas as PT (Pivot Table) da nossa planilhaSub Worksheet_Activate()Run "PT_Refresh"End Sub
Atualizando uma PT simples:
Sub PT_Refresh()Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("MyPivot")pt.RefreshTableEnd Sub
Atualizando várias PTs:Sub AllWorksheetPTs()Dim pt As PivotTableFor Each pt In ActiveSheet.PivotTablespt.RefreshTableNext ptEnd 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 ClonaPivotEnd Sub
Tags: VBA, PT, Pivot Table, Tabela Dinâmica, refresh, table, workbook, worksheet, automation