lunedì 16 giugno 2014

VBA-Excel: Aggiornare le Tabelle Pivot (e relativi Grafici) da codice

A chi scrive codice VBA può capitare l'esigenza di aggiornare le Tabelle Pivot (i Grafici Pivot si appoggiano anch'essi su Tabelle Pivot) dopo aver modificato i dati contenuti nei vari fogli.
Per prima cosa è utile sapere che le Tabelle Pivot si appoggiano su cache di dati e sono quindi queste ultime a dover essere aggiornate. Un modo molto semplice di aggiornare tutte le Pivot del Workbook (file) corrente è un ciclo che passi tutte le cache e ne esegua il Refresh.
Vi riporto di seguito il codice di una semplice Sub che inserita nel codice dell'oggetto ThisWorkbook implementa un metodo richiamabile dal vostro codice per "refreshare" (brutto inglesismo) tutte le Pivot.

Public Sub RefreshPivotTables()

    Dim PT As PivotCache
    For Each PT In ThisWorkbook.PivotCaches
        PT.Refresh
    Next
                
End Sub

Quindi nel vostro codice per richiamare il nuovo metodo sarà sufficiente scrivere:

ThisWorkbook.RefreshPivotTables

Alla prossima :-)

1 commento: