• DİKKAT

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

Kaydetme İşlemi Uzun Sürüyor: Çözüm Önerileri Rica Ediyorum

  • Konbuyu başlatan Konbuyu başlatan BedriA
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Değerli Arkadaşlar,

Projemde 12 sayfa, 20 kadar form, 5-6 tane de modül var.
Tabi bir yığın da kod...

"Thisworkbook.Save" satırının işlemi uzun sürüyor.
Sırf bu yüzden sayfa sayısını azalttım, kodları kısaltmaya çalıştım, faydası da oldu ama hala uzun sürüyor.

Kayıt işlemini belli bir sayfa ile sınırlandırmak mümkün mü acaba?
Değilse başka ne yapılabilir?
 
Son düzenleme:
Merhaba,
Excelde sayfa kaydet makrosu yoktur. Çalışma kitabı kaydedilir.
 
Worksheets.Count ile sayfa sayısını kontrol edip belirttiğiniz sayıdan fazla ise kayıt işlemini iptal edebilirsiniz. ThisWorkbook kod sayfasına BeforeClose olayına
Activeworkbook.close false yazarsınız.
 
Merhaba,

Kayıt işleminin uzun sürmesi dosya boyutuyla ve formüllerle ilgili bir durumdur.

Gereksiz alan biçimlendirmeleri ve formül kullanımları boyut büyümesine ve hem hesaplama hem de kayıt süresinin uzamasına neden olacaktır.
 
Worksheets.Count ile sayfa sayısını kontrol edip belirttiğiniz sayıdan fazla ise kayıt işlemini iptal edebilirsiniz. ThisWorkbook kod sayfasına BeforeClose olayına
Activeworkbook.close false yazarsınız.

Kayıttan önce kayıttan etkilenmeyen sayfaları gizlemek bir çözüm olabilir mi acaba?
 
Merhaba.

-- Örnek belge olmadan sorulan sorulara verilen cevaplar, ister istemez belli varsayımlara dayanıyor ve beklenen sonuçları sağlamayabiliyor,
-- Belgenizde mevcut çizim/resim gibi nesnelerin, grafik/özet tablo gibi alanların varlığı, varsa sayıları vs. bilinmiyor,
-- Belgede kullanılan formüllerin konumları ve yapıları bilinmiyor,
-- Belgede dizi formüllerinin varlığı/varsa yapıları ve sayıları bilinmiyor,
-- Belgede kullanılan makrolar var mıdır bilinmiyor,
-- Belgenizdeki temel verilerin (üzerinden sayma/toplama vs. gibi matematiksel işlemlerin yapıldığı,
elle girişi yapılan/başka kaynaktan hazır olarak kopyala-yapıştır yöntemiyle alınan
)
sayfa/sayfalardaki konumları, satır/sütun sayıları gibi bilgiler de yok,
-- Üzerinden hesaplamaların yapılacağı verilerin veri tabanı mantığına (bir sütunda tek tip veri tutulması gibi) göre tutulup tutulmadığı bilinmiyor.

Her neyse; bence varsayımlardan hareket ederek fikir yürütmek yerine, gerçek belgeyle aynı yapıda bir örnek belge üzerinden hareket etmekte yarar var.
(varsa çalışır durumda olmak üzere, kullanılan formüller/ad tanımlamaları/makroların örnek belge içerisinde olmasını sağlayınız)

Yavaşlama ile ilgili birçok neden olabilir.

İyi çalışmalar dilerim.
.
 
Merhaba.

-- Örnek belge olmadan sorulan sorulara verilen cevaplar, ister istemez belli varsayımlara dayanıyor ve beklenen sonuçları sağlamayabiliyor,
-- Belgenizde mevcut çizim/resim gibi nesnelerin, grafik/özet tablo gibi alanların varlığı, varsa sayıları vs. bilinmiyor,
-- Belgede kullanılan formüllerin konumları ve yapıları bilinmiyor,
-- Belgede dizi formüllerinin varlığı/varsa yapıları ve sayıları bilinmiyor,
-- Belgede kullanılan makrolar var mıdır bilinmiyor,
-- Belgenizdeki temel verilerin (üzerinden sayma/toplama vs. gibi matematiksel işlemlerin yapıldığı,
elle girişi yapılan/başka kaynaktan hazır olarak kopyala-yapıştır yöntemiyle alınan
)
sayfa/sayfalardaki konumları, satır/sütun sayıları gibi bilgiler de yok,
-- Üzerinden hesaplamaların yapılacağı verilerin veri tabanı mantığına (bir sütunda tek tip veri tutulması gibi) göre tutulup tutulmadığı bilinmiyor.

Her neyse; bence varsayımlardan hareket ederek fikir yürütmek yerine, gerçek belgeyle aynı yapıda bir örnek belge üzerinden hareket etmekte yarar var.
(varsa çalışır durumda olmak üzere, kullanılan formüller/ad tanımlamaları/makroların örnek belge içerisinde olmasını sağlayınız)

Yavaşlama ile ilgili birçok neden olabilir.

İyi çalışmalar dilerim.
.

Ömer Hocam,

Uzun uzun yazmışsınız, ilgilenmişsiniz, teşekkür ederim.

Ancak soruyla ilgili durum o kadar da muğlak değil aslında.
Nitekim modül kullandığımı, çok sayıda kod bulunduğu gibi bilgileri
yazdım:

"Projemde 12 sayfa, 20 kadar form, 5-6 tane de
modül var.
Tabi bir yığın da kod..."


Sorun da çok net aslında: Projedeki herhangi bir kod
içerisinde, "ThisWorkbook.Save" satırı varsa, yani
kayıt yapılıyorsa işlem uzun sürüyor. Ben de gözlemlediğim
kadarıyla, nedenin Korhan Hoca'nın belirttiği şeylerden
kaynaklandığını fark ettim.
Bunun üzerinde deyim yerindeyse projeyi budadım;
sadeleştirmeye çalıştım.
İşe de yaradı ancak hala bir yavaşlık var. Dosyanın
boyutu 13,7 MB. İşin doğrusu öyle aman aman bir
sorun teşkil etmiyor bu durum ancak bir çözümü varsa
gidereyim diye sormak istedim.

Sayfalarda resim yok, sadece string veriler var. Ancak
çok fazla kod var sayfaların, modüllerin ve formların kod alanlarında.

Takdir edersiniz ki örnek dosya paylaşsam da onca kodu
kontrol etmek az zaman işi değil. Açıkçası kimseyi de o
kadar yormak istemem.

Tekrar teşekkür ederim ilginiz için.
 
Selamlar,
Tüm sayfalarda kullanılmayan boş satır ve sütunları "Delete" yöntemiyle silmeniz faydalı olabilir.
 
Merhaba,

Kayıt işleminin uzun sürmesi dosya boyutuyla ve formüllerle ilgili bir durumdur.

Gereksiz alan biçimlendirmeleri ve formül kullanımları boyut büyümesine ve hem hesaplama hem de kayıt süresinin uzamasına neden olacaktır.

Bir sayfada gereksiz kenarlık kullanmışım, son satıra kadar.
Onu düzeltince tam 4 MB fark etti.

Çok teşekkür ederim.
 
Dosyanızda makro kullanıyorsanız gereksiz formül kullanımından kaçınırsanız dosya boyutu daha da düşecektir. Formüllerle yaptığınız işlemleri farklı olaylara yazacağınız makrolar ile yaptırabilirsiniz. Böylece kaydetme süreniz oldukça hızlanacaktır.

Ek olarak ADO konularına bulaşıp bir excel dosyasını arayüz olarak kullanıp kapalı dosya işlemlerine girişebilirsiniz. Bu da projenize hız katacaktır. Yalnız uygulama için tecrübe gerekecektir.
 
Dosyanızda makro kullanıyorsanız gereksiz formül kullanımından kaçınırsanız dosya boyutu daha da düşecektir. Formüllerle yaptığınız işlemleri farklı olaylara yazacağınız makrolar ile yaptırabilirsiniz. Böylece kaydetme süreniz oldukça hızlanacaktır.

Ek olarak ADO konularına bulaşıp bir excel dosyasını arayüz olarak kullanıp kapalı dosya işlemlerine girişebilirsiniz. Bu da projenize hız katacaktır. Yalnız uygulama için tecrübe gerekecektir.

ADO konularına öneriniz üzerine baktım biraz, yavaş yavaş giriş yapmaya çalışıyorum. Çok teşekkür ederim önerileriniz için.
 
Geri
Üst