Soru dosyamın aylar ilerledikçe aşırı yavaşlaması

Katılım
18 Ağustos 2009
Mesajlar
746
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Arkadaşla günlük takip işlemleri yapmak için kullandığım dosyam var ve bu dosyaları OCAK-ARALIK olarak 12 ay ayrı kaydediyorum ve her dosyamda aylardaki gün sayıları kadar sayfalar bulunuyor ancak her ay ilerledikçe bu dosyamın açılması,kaydet denildiğinde kaydetmesi,kapatması çok aşırı şekilde yavaşlıyor. Birde 12 aylık verileri her ayın içerisinde görebilmem için ayrı sayfam var ancka bunları değere dönüştürüyorum. 1-31 aralığında her sayfada bulunan buttonlarda kodlar olduğundan bu kodlar 31 saydada da oluyor acaba bundanmı yavaşlıyor diyorum kendimce. Bu kodları her sayfaya değilde tek bir yere yazmış olsam o kodlar orda olsa yavaşlama gidermi acaba? Mesela aşağıda ki gibi butonların her birisinde kodlar var. Bu dosyamdaki aşırı yavaşlık sizce neden olabilir nasıl çözerim. Dosyamı göndermek isterim ama içerisinde işyerime ait çok özel veriler vardır. Teşekkürler...

Private Sub CommandButton8_Click()
Private Sub CommandButton9_Click()
Private Sub CommandButton10_Click()
Private Sub CommandButton11_Click()
Private Sub CommandButton13_Click()
Private Sub CommandButton14_Click()
Private Sub CommandButton15_Click()
Private Sub CommandButton17_Click()
Private Sub CommandButton18_Click()
Private Sub CommandButton20_Click()
Private Sub SaveButton1_ButtonPressed()


Private Sub ÇOĞALT_Click()
COGALT
tipdegisikligi
aktar
End Sub

Private Sub TAMÇOĞALT_Click()
tamcogalt
tipdegisikligi
End Sub
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
1,205
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Her sayfada 1–31 buton varsa, ay dosyasında yüzlerce ActiveX nesnesi eder. ActiveX’ler:

Açılışta yüklenirken,
Kaydederken (özellikle .xlsm),
Sayfa kopyalarken,
“Design Mode / event” altyapısıyla
çok ciddi yavaşlatır ve bazen dosyayı da şişirir.

ActiveX CommandButton yerine Form Control Button kullan (Geliştirici > Ekle > Form Denetimleri).
Ya da tek bir “tıklama alanı” mantığı: hücreye tıklayınca işlem (Worksheet_BeforeDoubleClick gibi) ve butonları tamamen kaldır.
Eğer buton şartsa: tek sayfada 31 buton olsun, gün seçince ilgili sayfaya işlem uygulasın.
ActiveX’ten Form Control’e geçmek çoğu dosyada dramatik hız farkı yaratıyor.

31 ayrı Click olayı yerine tek prosedür çalışır
event karmaşası azalır
kopyalama/çoğaltma sırasında modül şişmesi vs azalır (biraz)

Her gün sayfasında ActiveX butonlar (en olası)
Çok sayıda sayfa + kopyalama ile büyüyen koşullu biçimlendirme / stiller / isimler
12 aylık özet sayfasında ağır formüller + values’a çevirme ile şişme
VBA’da event/heseplama kapatılmadan yapılan büyük kopyalama işlemleri

Dosyanızı görmeden tam teşhis zor aklımıza gelenler bunlar
 
Katılım
18 Ağustos 2009
Mesajlar
746
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Her sayfada 1–31 buton varsa, ay dosyasında yüzlerce ActiveX nesnesi eder. ActiveX’ler:

Açılışta yüklenirken,
Kaydederken (özellikle .xlsm),
Sayfa kopyalarken,
“Design Mode / event” altyapısıyla
çok ciddi yavaşlatır ve bazen dosyayı da şişirir.

ActiveX CommandButton yerine Form Control Button kullan (Geliştirici > Ekle > Form Denetimleri).
Ya da tek bir “tıklama alanı” mantığı: hücreye tıklayınca işlem (Worksheet_BeforeDoubleClick gibi) ve butonları tamamen kaldır.
Eğer buton şartsa: tek sayfada 31 buton olsun, gün seçince ilgili sayfaya işlem uygulasın.
ActiveX’ten Form Control’e geçmek çoğu dosyada dramatik hız farkı yaratıyor.

31 ayrı Click olayı yerine tek prosedür çalışır
event karmaşası azalır
kopyalama/çoğaltma sırasında modül şişmesi vs azalır (biraz)

Her gün sayfasında ActiveX butonlar (en olası)
Çok sayıda sayfa + kopyalama ile büyüyen koşullu biçimlendirme / stiller / isimler
12 aylık özet sayfasında ağır formüller + values’a çevirme ile şişme
VBA’da event/heseplama kapatılmadan yapılan büyük kopyalama işlemleri

Dosyanızı görmeden tam teşhis zor aklımıza gelenler bunlar

1.2.3.4.........31 bunlar ayın günleri ve her günde o sayıda buttonlar var. Örnek dosya gönderiyim sizlere..


 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,482
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Kodların her sayfada olması dosyanızı yavaşlatmaz. Sadece dosya boyutuna etki edecektir.

Önemli olan sayfalarda kaç satır veri depoluyorsunuz. Sayfalarda ne kadar formül var. Dosyanın yavaşlamasına en büyük etki eden kullanılan satır sayısı ve formülasyon yoğunluğudur. Koşulu biçimlendirme formülleride yavaşlamaya sebep olabilir.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
1,205
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Açılışı en çok yavaşlatan 6 sebep
  1. Çok fazla Shape/Buton
    Açılışta hepsini tek tek yükler. Sende buton sayısı yüksek
  2. Koşullu biçimlendirme + stil şişmesi
    Çok kural + çok renk/stil → dosya iç yapısı ağırlaşır.
  3. UsedRange şişmesi (gereksiz “kullanılmış” alan)
    İçerik olmasa bile Excel “kullanılmış” saydığı alanı yükler.
  4. External link / network bağlantıları
    Başka dosyalara link, ağ yolları, Query bağlantıları açılışta kontrol edilir.
  5. Workbook_Open / Worksheet_Activate gibi event makroları
    Açılırken bir şey hesaplatıyor/temizliyor olabilir.
Yavaşlığı şöyle ölçebilirsiniz

Makrolar kapalı aç Dosyayı açarken SHIFT tuşuna basılı tut.
Hızlanıyorsa: sorun Workbook_Open veya event’lerde.Hızlanmıyorsa: sorun shape/usedrange/stil/bağlantı tarafı.

Hesaplamayı “Elle” yapıp aç Excel > Formüller > Hesaplama Seçenekleri > Elle Sonra dosyayı kapat-aç.
Hızlanıyorsa: formül/koşullu biçim/hesap yükü.Değişmiyorsa: şekiller/usedrange/ağ bağlantısı.

Bir kopyada bütün butonları silip aç Dosyanın kopyasını al, bir sayfada bütün buton/shape’leri seçip sil
Kaydet, kapat, aç. Açılış bariz hızlanıyorsa: ana suçlu shape/VML.
 
Üst