ERMAN.SAYINALP

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,

Çok sayıda sayfadan oluşan ve bu sayfalarda yoğun Fonksiyon bulunan Çalışma Kitabım (Excel Dosyası) bu sebepten dolayı çok kasıldı ve yavaş işlem yapıyor.
İşlemci, satıra/hücreye veri girişi yapıldığında, söz konusu yoğun fonksiyonların sonuçlarını bulmak adına bir dizi işlemi yaparken doğal olarak kasılıyor.

Bu yüzden, Calculation operasyonunun sadece AKTİF SAYFA'da çalışıyor olması, diğer PASİF SAYFA'larda "Off" olması, Sayfalarda gezinirken sadece bakılan sayfada "On" olması yönünde bir KODLAMA'ya ihtiyaç duymaktayım.

Bunun için örnek dosya istenmeyeciğini düşünüyorum, zira sorumun çok sarih olduğunu düşünüyorum.

Örnek:

Sayfa1Sayfa2Sayfa3Sayfa4
PasifPasifAktifPasif
Calculation --- OffCalculation --- OffCalculation --- ONCalculation --- Off
 
@ERMAN.SAYINALP

VBA ekranını açın ve aşağıdaki kodları ThisWorkbook bölümüne yapıştırarak bir deneyin bakalım.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(10 satır)
Ömer bey,

Herzaman ki gibi yine sizden harika bir çözüm aldım, teşekkür ederim.
Soru bölümünde anlatmaya çalıştığım nedenlere bağlı olarak, Çalışma Kitabımdaki yoğun kasılma, büyük oranda ortadan kalktı. Yüzdesel olarak ifade etmek gerekirse, önceki haline göre % 85 oranında hızlandı. Bu bakımdan çok mutlu ettiniz, emeğinize sağlık teşekkür ederim.

Görüşmek üzere...
 
Ömer bey,
Konuya ilişkin bir teknik soru sormak isterim. Verdiğiniz ve sonradan üzerinde tadilat yaptığımız kodlama, sizin verdiğiniz biçimiyle;

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.Calculation = xlCalculationManual
Activesheet.Calculate


iken, ben bu sıranın mantıken böyle olabileceğini düşündüm, sizce de doğru mudur ?

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Activesheet.Calculate
Application.Calculation = xlCalculationManual


Gerçi uyguladığımda, ikisi arasında belirgin bir fark olmadı ama, siz ne dersiniz ?
 
@ERMAN.SAYINALP
Örnek belgeniz olmadığından YAVAŞlamaya neden olan formülleri bilmiyoruz.
Yeni bir konu açarak, sorunuzu gerçek belgenizin özel bilgi içermeyen bir kopyası üzerinden sorarsanız,
sorunu kaynağında çözmek (formüllerdeki hesaplamaları makro kodlarına yaptırmak) mümkün olabilir.


Önceki yazışmalarda önerdiğim değişikliği HIZ FARKI için önermedim, kod tekniği bakımından ikinci önerim daha doğru diye yazdım.
Netice itibariyle;
-- belgenizi açtığınızda hesaplama yönteminin ELLE haline getirilmesi,
-- formüller içeren bir sayfaya geçtiğinizde o sayfadaki formüllerin yeniden HESAPlanması,
-- aktif sayfada elle veri girişi olduğunda o sayfadaki formüllerin yeniden hesaplanması,
-- belgeyi kapattığınızda da hesaplama yönteminin OTOMATİK haline getirilmesi
gerekir.

Bu durumda olayın bütünü açısından, ThisWorkbook bölümüne şu kodları uygulamanız çözüm olur.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(15 satır)
 
Üst