Bu bölümde VBA’da pivot tablolarla çalışma örneklerini inceleyeceğiz.
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 Code language: VB.NET (vbnet)
Sonuç:

Aşağıdaki komutla pivot tabloları yenileyebiliriz.
Sub Pivot_yenileme()
ThisWorkbook.RefreshAll
Dim pivot1 As PivotTable
Set pivot1 = ActiveSheet.PivotTables("PivotTablo1")
ivot1.PivotCache.Refresh
End Sub Code language: VB.NET (vbnet)
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ştirelim

Aynı ş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 Code language: VB.NET (vbnet)
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 Code language: VB.NET (vbnet)
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.
