Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie

Oggi voglio proporvi una routine già pronta per minimizzare le dimnsioni di un foglio di lavoro che contiene varie tabelle pivot create con VBA, ma basate sugli stessi dati. Ogni nuova tabella viene creata con una propria cache, il che aumenta le dimensioni del file.

 

Con questa semplice routine, potrete leggere la cache della prima tabella pivot della cartella a applicarla a tutte le pivot della cartella di laoro.

All'inizio della routine, un messaggio vi indica il numero delle cache, dopo la la sua esecuzione un messaggio simile  indica che il numero delle cache è ridotto a 1.

Public Sub ConsolidatePivotCache()
Dim ws As Worksheet
Dim ptO As PivotTable
Dim pt As PivotTable
Dim pc As PivotCache

MsgBox ActiveWorkbook.PivotCaches.Count

For Each ws In ActiveWorkbook.Worksheets

If ws.PivotTables.Count <> 0 Then
 Set ptO = ws.PivotTables(1)

Exit For
End If

Next

For Each ws In ActiveWorkbook.Worksheets
   
    For Each pt In ws.PivotTables
        
        pt.CacheIndex = ptO.CacheIndex
    Next pt
Next ws

MsgBox ActiveWorkbook.PivotCaches.Count
End Sub

Joomla templates by a4joomla