• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ActiveWorkbook.Refreshall tamamlanana kadar makroları bekletmek.

Katılım
12 Şubat 2013
Mesajlar
53
Excel Vers. ve Dili
Türkçe Excel 2019
Arkadaşlar merhaba,
Daha önceden buradaki arkadaşların yardımı ile otomatik gönderilen bazı tablolar oluşturmuştum. Benzer şekilde bir dosyam daha mevcut.
Dosya açılınca listeleri "ActiveWorkbook.RefreshAll" komutu ile güncelleyerek PDF'e çevirmesini sağlıyorum. Ancak burada PDF dosyası yenilenmemiş şekilde çıktı alıyor.

Burada ActiveWorkbook.RefreshAll komutu bitene kadar makronun beklemesini sağlayabilir miyim?

Yardımlarınız için şimdiden teşekkür ederim
 
Tam yenileme olmuyordur. Deneyin
Kod:
Private Sub Workbook_Open()
Dim ws As Worksheet
Dim pt As PivotTable

ActiveWorkbook.RefreshAll

For Each ws In ActiveWorkbook.Worksheets
    For Each pt In ws.PivotTables
        pt.RefreshTable
    Next pt
Next ws

End Sub

Birden çok tablo aynı önbelleği kullanıyorsa sadece pivotcachl'arı yenileyin
Kod:
Private Sub Workbook_Open()
Dim pc As PivotCache

ActiveWorkbook.RefreshAll

For Each pc In ActiveWorkbook.PivotCaches
    pc.Refresh
Next pc

End Sub
 
Çok teşekkür ediyorum.

2. kodlar işimi gördü.

Eğer vaktinizi almayacak ise bana buradaki mantığı anlatabilir misiniz?

Tekrardan çok teşekkür ediyorum
 
Pivot Önbellek Özet tablo ile beraber otomatik olarak oluşturulan ve Veri kaynağının Kopyasını tutan nesnedir. Özet tabloda yapılan değişiklik pivot önbellekte gerçekleştirilerek Pivot tablonun hızlı çalışması sağlanır. Doğrudan verilerle özet tabloda değişiklik yaptığınızı zannederken pivot önbelleği kullanırsınız. Değişiklikleri yansıtmak için yenileme (refresh)yapılmasının nedeni de bu.
Veriler büyükse ve bir kaç tabloda aynı verileri kullanılırsa dosyanın boyutu önemli ölçüde artar. Çünkü her bellek için otomatik pivot önbellekleri oluşur. Zamanla da kararsızlaşır arada boşaltılması gerekir . Verilerinizin yedeklerini almayı unutmayın.
Kolay gelsin.
 
Açıklamanız için çok teşekkür ediyorum.

İyi günler
 
Geri
Üst