Pivot tablo ile data kaynağı arasında Pivot önbelleği yer almaktadır. İşlemlerin bu konunun dikkate alınarak yapılması gerekir.
Öncelikle aşağıdaki gibi “TabloSatis” adında bir tablo yaratalım
Pivot tablolarla çalışırken tavsiye edilen işlem makro kaydedici kullanarak yöntem ve metotları incelemektir.
Aşağıdaki komutla pivot tablomuzu biçimlendirebiliriz
Sub Pivot_bicimlendirme() Dim pivot1 As PivotTable Set pivot1 = ActiveSheet.PivotTables("PivotTablo1") pivot1.PivotFields("Toplam Tutar").NumberFormat = "#,##0" pivot1.DataBodyRange.Interior.Color = vbCyan End Sub
Sonuç:
Aşağıdaki komutla pivot tabloları yenileyebiliriz.
Sub Pivot_yenileme() ThisWorkbook.RefreshAll Dim pivot1 As PivotTable Set pivot1 = ActiveSheet.PivotTables("PivotTablo1") pivot1.PivotCache.Refresh End Sub
Not: Sadece bir pivot tabloyu yenilesek bile tüm pivot tablolar yenilenmiş olur. İşleyişin farklı excel versiyonlarında farklı çalışması ihtimale karşı (ThisWorkbook.RefreshAll) komutunu kullanmak gerekir.
Pivot Tablolarda Önbellek Değiştirme
Örneğin bir tablo daha yaratalım ve adını “TabloSatis2” koyalım ve Tutar kısmını değiştirelimAynı şekilde PivotTablo1’i kopyalayıp yana yapıştıralım ve adını PivotTablo2 olarak değiştirelim
Aşağıdaki komutla PivotTablo2’nin önbelleği TabloSatis2 tablosuna bağlanmış oldu
Sub Pivot_Cache_degistirme() Dim pivot1 As PivotTable Set pivot1 = ActiveSheet.PivotTables("PivotTablo2") pivot1.ChangePivotCache ThisWorkbook.PivotCaches.Create(xlDatabase, "TabloSatis2") End Sub
Sonuç: Tutar sütununun değiştiğine dikkat edin
Not: Immediate penceresinden ?ThisWorkbook.PivotCaches.Count komutu ile 2 adet pivot önbelleği olduğunu görebilirsiniz.
Aşağıdaki komutla pivot önbelleği tekrar eski haline getirilebilir:
Sub Pivot_yeniden_degistirme() ActiveSheet.PivotTables("PivotTablo2").ChangePivotCache ("PivotTablo1") End Sub
Sonuç: Tutar sütunu tekrar eski haline geldi

Not1: Immediate penceresinden ?ThisWorkbook.PivotCaches.Count komutu ile pivot önbellek adedinin tekrar 1 olduğunu görebilirsiniz.
Not2: Pivot önbellek adedi ne kadar az olursa Excel o kadar hızlı çalışır.
Not3: ?ThisWorkbook.SlicerCaches(1).Name komutu ile birinci dilimleyici önbellek adını görebilirsiniz.