VBA Excel Kullanarak Özet Tabloları Otomatik Yenileme

İçindekiler:

Anonim

Hepimizin bildiği gibi, bir pivot tablonun kaynak verilerinde ne zaman değişiklik yapsak, pivot tabloya hemen yansımaz. Değişiklikleri görmek için pivot tabloları yenilememiz gerekiyor. Ve pivot tabloları yenilemeden güncellenmiş bir dosya gönderirseniz, utanabilirsiniz.

Bu yazıda, VBA kullanarak bir pivot tablonun nasıl otomatik olarak yenileneceğini öğreneceğiz. Bu yol sandığınızdan daha kolay.

Bu, çalışma kitabındaki özet tabloları otomatik olarak yenilemek için kullanılan basit sözdizimidir.

'Kaynak Veri Sayfasındaki Kod Nesnesi Özel Alt Worksheet_Deactivate() pagename_of_pivot_table.PivotTables("pivot_table_name").PivotCache.Refresh End Sub 

Özet Önbellekler nedir?

Her pivot tablo, verileri pivot önbelleğinde saklar. Bu nedenle pivot önceki verileri gösterebilir. Pivot tabloları yenilediğimizde, pivot tablodaki değişiklikleri yansıtmak için önbelleği yeni kaynak verilerle günceller.

Bu yüzden pivot tabloların önbelleğini yenilemek için bir makroya ihtiyacımız var. Makroyu manuel olarak çalıştırmamıza gerek kalmaması için bunu bir çalışma sayfası olayı kullanarak yapacağız.

Pivot Tabloları Otomatik Yenilemek İçin Nerede Kodlama Yapılır?

Kaynak verileriniz ve pivot tablolarınız farklı sayfalardaysa, VBA kodu kaynak veri sayfasına girmelidir.

Burada Worksheet_SelectionChange Event'i kullanacağız. Bu, kaynak veri sayfasından başka bir sayfaya geçiş yaptığımızda kodu çalıştıracaktır. Bu olayı neden kullandığımı daha sonra açıklayacağım.

Burada, sayfa2'de kaynak verilerim ve sayfa1'de pivot tablolarım var.

CTRL+F11 tuşunu kullanarak VBE'yi açın. Proje gezgininde, Sayfa1, Sayfa2 ve Çalışma Kitabı olmak üzere üç nesne görebilirsiniz.

Sayfa2 kaynak verileri içerdiğinden, sayfa2 nesnesine çift tıklayın.

Artık kod alanının üst kısmında iki açılır menü görebilirsiniz. İlk açılır menüden çalışma sayfasını seçin. Ve ikinci açılır menüden Devre Dışı Bırak'ı seçin. Bu, Worksheet_Deactivate boş bir alt ad ekleyecektir. Kodumuz bu alt kısma yazılacaktır. Bu altta yazılan herhangi bir satır, kullanıcı bu sayfadan başka bir sayfaya geçtiği anda yürütülür.

Sayfa1'de iki pivot tablom var. Yalnızca bir pivot tabloyu yenilemek istiyorum. Bunun için pivot tablonun adını bilmem gerekiyor. Herhangi bir pivot tablonun adını öğrenmek için, o pivot tablodaki herhangi bir hücreyi seçin, pivot tablo analiz sekmesine gidin. Sol tarafta pivot tablonun adını göreceksiniz. Pivot tablonun adını buradan da değiştirebilirsiniz.

Artık pivot tablonun adını biliyoruz, pivot tabloyu yenilemek için basit bir satır yazabiliriz.

Private Sub Worksheet_Deactivate() Sheet1.PivotTables("PivotTable1").PivotCache.Refresh End Sub 

Ve yapılır.

Şimdi, kaynak verilerden ne zaman geçiş yapacaksanız, bu vba kodu, pivot tablo1'i yenilemek için çalışacaktır. Aşağıdaki gifte de görebileceğiniz gibi.

Çalışma Kitabındaki Tüm Özet Tablolar Nasıl Yenilenir?

Yukarıdaki örnekte, yalnızca belirli bir pivot tabloyu yenilemek istedik. Ancak bir çalışma kitabındaki tüm pivot tabloları yenilemek istiyorsanız, kodunuzda küçük değişiklikler yapmanız yeterlidir.

Private Sub Worksheet_Deactivate() 'Sheet1.PivotTables("PivotTable1").PivotCache.Refresh BuWorkbook.PivotCaches pc.Refresh Sonraki pc End Sub 

Bu kodda, çalışma kitabındaki her bir pivot önbellek arasında dolaşmak için bir For döngüsü kullanıyoruz. ThisWorkbook nesnesi tüm özet önbellekleri içerir. Bunlara erişmek için ThisWorkbook.PivotCaches kullanıyoruz.

Worksheet_Deactivate Etkinliğini Neden Kullanmalı?

Kaynak verilerde herhangi bir değişiklik yapılır yapılmaz pivot tabloyu yenilemek istiyorsanız Worksheet_Change olayını kullanmalısınız. Ama tavsiye etmem. Sayfada her değişiklik yaptığınızda çalışma kitabınızın kodu çalıştırmasını sağlar. Sonucu görmek istemeden önce yüzlerce değişiklik yapmanız gerekebilir. Ancak excel, her değişiklikte pivot tabloyu yenileyecektir. Bu işlem zaman ve kaynak israfına yol açacaktır. Bu nedenle, farklı sayfalarda pivot tablolarınız ve verileriniz varsa, Çalışma Sayfası Devre Dışı Bırakma Olayını kullanmak daha iyidir. İşinizi bitirmenizi sağlar. Değişiklikleri görmek için pivot tablo sayfalarına geçtiğinizde, değişiklikleri değiştirir.

Aynı sayfada pivot tablolarınız ve kaynak verileriniz varsa ve pivot tabloların kendini otomatik olarak yenilemesini istiyorsanız, Worksheet_Change Event'i kullanmak isteyebilirsiniz.

Private Sub Worksheet_Change(ByVal Target As Range) Sheet1.PivotTables("PivotTable1").PivotCache.Refresh End Sub 

Kaynak Verilerde Değişiklik Yapıldığında Çalışma Kitaplarındaki Her Şey Nasıl Yenilenir?

Bir çalışma kitabındaki her şeyi (grafikler, pivot tablolar, formüller vb.) yenilemek istiyorsanız ThisWorkbook.RefreshAll komutunu kullanabilirsiniz.

Private Sub Worksheet_Change(ByVal Target As Range) ThisWorkbook.RefreshAll End Sub 

Lütfen bu kodun veri kaynağını değiştirmediğini unutmayın. Bu nedenle, kaynak verilerin altına veri eklerseniz, bu kod bu verileri otomatik olarak içermez. Kaynak verileri depolamak için Excel Tablolarını kullanabilirsiniz. Tablo kullanmak istemiyorsanız, yeni verileri dahil etmek için VBA'yı da kullanabiliriz. Bir sonraki eğitimde öğreneceğiz.

Evet dostum, Excel'deki pivot tabloları bu şekilde otomatik olarak yenileyebilirsiniz. Umarım yeterince açıklayıcı olabilmişimdir ve bu makale işinize yaramıştır. Bu konu ile ilgili herhangi bir sorunuz varsa, aşağıdaki yorum bölümünde bana sorabilirsiniz.

Excel'de Pivot Tablo Veri Kaynağı Aralığını Dinamik Olarak Güncelleme: Özet tabloların kaynak veri aralığını dinamik olarak değiştirmek için özet önbellekleri kullanıyoruz. Bu birkaç satır, kaynak veri aralığını değiştirerek herhangi bir pivot tabloyu dinamik olarak güncelleyebilir. VBA'da, aşağıda gösterildiği gibi pivot tablo nesnelerini kullanın…

Sayfada Belirlenen Aralıkta Değişiklik Yapılırsa Makroyu Çalıştır: VBA uygulamalarınızda, belirli bir aralık veya hücre değiştiğinde makro çalıştırmanız gerekir. Bu durumda, bir hedef aralıkta değişiklik yapıldığında makroları çalıştırmak için change olayını kullanırız.

Sayfada Herhangi Bir Değişiklik Yapıldığında Makroyu Çalıştır | Bu nedenle, sayfa her güncellendiğinde makronuzu çalıştırmak için VBA'nın Çalışma Sayfası Olaylarını kullanıyoruz.

Geçerli Satırı ve Sütunu Kullanarak Vurgulamak için En Basit VBA Kodu | Sayfanın geçerli satırını ve sütununu vurgulamak için bu küçük VBA parçacığını kullanın.

Excel VBA'daki Çalışma Sayfası Olayları | Çalışma sayfası olayı, sayfada belirli bir olay meydana geldiğinde makrolarınızın çalışmasını istediğinizde gerçekten kullanışlıdır.

Popüler Makaleler:

Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.

Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.

Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli bir değeri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.

Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.