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.