• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Makro Çalışmasının Yavaşlaması

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

vernel

Yeni Üye
Katılım
12 Ağu 2021
Mesajlar
321
Çözümler
1
Aldığı beğeni
127
Excel V
Office 2013 TR
Konu Sahibi
Merhabalar, bir konuda fikrinizi almak istiyorum.
10 satırlık veriyi 5 saniyede halleden makro, veri sayısı 200 olunca 350 saniyede halletmesi normal midir sizce!
Not :
- dosyada aktif durumda formül yok,
- dış veri çekimi yapılmıyor.
- sayfanın içinde hesaplamalar yapan formüller makro ile çalışıp değere çevriliyor her satırda.
 
Çözüm
1_ Kullandığınız makrolarda değişkenleri mesela public değişkenleri
boşaltmıyorsanız dosya şişer. Makrolar zamanla yavaşlar.
2_ Bazı alanlarda sürekli formül kullanıyoruz. Ve farklı formüller
kullanıyoruz. Bu formüller bellekte iz bırakır. Burada temizliğin
nasıl yapıldığı önemli. Çok sık formül kullandığınız bir dosyanın
iki kopyasını alın. Birini ClearContents ile diğerini Delete ile temizleyin.
Farkı göreceksiniz.
3_ Aşırı biçimlendirme ve sayfa kodları bir başka neden.
Sayfada her eylemimizde farklı kodların ve biçimlendirme komutlarının
çalışması demek bu. Örneğin sayfa kodunda formülleri yeniden hesapla komutu vermişsek
dosya şişmesin de ne yapsın. Buna bir de modüllerde, butonlarda kullandığınız
kodların çakışmasını...
VBA konusunda uzun zamandır çalışıyorum. Kendimi hala geliştiriyorum. Fakat yavaşlamaların ve dosya şişmesi (mb değerinin sürekli artması) gibi problemlerin nereden kaynaklandığını halen çözemedim.

Mesela; yaklaşık 60bin satır ve oldukça fazla alana sahip olan veride bir kaç saniye içinde işlem yaparken, farklı bir dosyadaki bir kaç yüz satırlık veride bir kaç dakika beklediğim bile oluyor.

Öte yandan makrolu bir dosyam vardı, sürekli olarak dosya boyutu artıyordu. Bunun olmasını gerektirecek hiç bir sebep yokken. 1.5mb lık dosya aça kapata en son 35mb olmuştu. En sonunda sildim tabi:)

Velhasıl hangi kodda, hangi hesaplamada neden kasar? Nasıl kasar? En ufak bir fikrim yok.
O yüzden artık VB.NET ile çalışmalar yürütüyorum. Daha stabil, daha kararlı, daha düzenli işler çıkarıyorum.
 
Çalışmanızı görmeden birşey söylemesi zor ama 10 satır için 5 saniye bence çok
1er milyonluk 2 sayfadaki veriyi karşılaştirdigimda bile en fazla 10dk harcadığım olmuştu bir yerlerde gözden kaçan birşey olmali
 
Konu Sahibi
Çalışmanızı görmeden birşey söylemesi zor ama 10 satır için 5 saniye bence çok
1er milyonluk 2 sayfadaki veriyi karşılaştirdigimda bile en fazla 10dk harcadığım olmuştu bir yerlerde gözden kaçan birşey olmali
teşekkürler fikir için. aslında dosya bir arkadaşımın. Prim hesaplaması gibi bir şey yapıyorlar. Kapsamlı formüllerin olduğu her satırda hedef ara ile geriye doğru hesaplamalar var. Hedef ara yavaşlığa neden olabilir sanırım!
 
Konu Sahibi
VBA konusunda uzun zamandır çalışıyorum. Kendimi hala geliştiriyorum. Fakat yavaşlamaların ve dosya şişmesi (mb değerinin sürekli artması) gibi problemlerin nereden kaynaklandığını halen çözemedim.

Mesela; yaklaşık 60bin satır ve oldukça fazla alana sahip olan veride bir kaç saniye içinde işlem yaparken, farklı bir dosyadaki bir kaç yüz satırlık veride bir kaç dakika beklediğim bile oluyor.

Öte yandan makrolu bir dosyam vardı, sürekli olarak dosya boyutu artıyordu. Bunun olmasını gerektirecek hiç bir sebep yokken. 1.5mb lık dosya aça kapata en son 35mb olmuştu. En sonunda sildim tabi:)

Velhasıl hangi kodda, hangi hesaplamada neden kasar? Nasıl kasar? En ufak bir fikrim yok.
O yüzden artık VB.NET ile çalışmalar yürütüyorum. Daha stabil, daha kararlı, daha düzenli işler çıkarıyorum.
fikir için teşekkürler arGNoR. Vb.net excel dosyalarına uygulabilen bir program mıdır, ayrı bir ortam mıdır!
 
Excelde pek bilgi sahibi degilim o nedenle bir sey diyemem arama kodlarini diger formulleri, islemleri gormek gerekir
 
fikir için teşekkürler arGNoR. Vb.net excel dosyalarına uygulabilen bir program mıdır, ayrı bir ortam mıdır!
Farklı bir platform. Bunu uyarlamaya çalışmaktansa o hesaplamaları tek tek elle yapmayı bile isteyebilirsiniz:)
 
En hizli arama diziler ile oluyor diye biliyorum, ordaki sorun Türkçe karakterlerde
I,i nedeniyle dönüşümler yapılması gerekiyor
ADO tam çözümdür ama hem biraz daha yavaş oluyor hemde farklı işlemlerde bazen sorun cikarabiliyor
 
Konu Sahibi
En hizli arama diziler ile oluyor diye biliyorum, ordaki sorun Türkçe karakterlerde
I,i nedeniyle dönüşümler yapılması gerekiyor
ADO tam çözümdür ama hem biraz daha yavaş oluyor hemde farklı işlemlerde bazen sorun cikarabiliyor
aslında yavaşlık çok sorun değil ama aktif formül olmayan bir dosyada veri arttıkça hızın geometrik yavaşlaması anormal gibi. 10 sayırlık performansı devam etse veya az bir artış olsa makul olurdu.
 
Hangi hesaplamaları yaptığını bilmeden, aramayi neye göre yaptığını bilmeden çözüm önermek zor örnek dosya ekleyip, daha ayrıntılı bir açıklama yaparsanız çözüm bulmaya çalışırız
 
Konu Sahibi
Hangi hesaplamaları yaptığını bilmeden, aramayi neye göre yaptığını bilmeden çözüm önermek zor örnek dosya ekleyip, daha ayrıntılı bir açıklama yaparsanız çözüm bulmaya çalışırız
teşekkürler. arkadaştan dosyayı isteyip yüklerim. ben de merak ettim. acaba genel bir durum mu, o dosyaya özgü mü. hafta sonu olur muhtemelen
 
1_ Kullandığınız makrolarda değişkenleri mesela public değişkenleri
boşaltmıyorsanız dosya şişer. Makrolar zamanla yavaşlar.
2_ Bazı alanlarda sürekli formül kullanıyoruz. Ve farklı formüller
kullanıyoruz. Bu formüller bellekte iz bırakır. Burada temizliğin
nasıl yapıldığı önemli. Çok sık formül kullandığınız bir dosyanın
iki kopyasını alın. Birini ClearContents ile diğerini Delete ile temizleyin.
Farkı göreceksiniz.
3_ Aşırı biçimlendirme ve sayfa kodları bir başka neden.
Sayfada her eylemimizde farklı kodların ve biçimlendirme komutlarının
çalışması demek bu. Örneğin sayfa kodunda formülleri yeniden hesapla komutu vermişsek
dosya şişmesin de ne yapsın. Buna bir de modüllerde, butonlarda kullandığınız
kodların çakışmasını ekleyin. Tutarlılık ve bütünlük Excelin ruh sağlığı için önemli. :)
4_ Tablo ve sorgulama tasarımı. Veri tekrarlarına dayanan
tablo tasarımı dosyanız için yüktür.
5_ Formül tasarımı. Dizi formülleri yada fazla değişken gerektiren formüller de
-mesela toplaçarpım formülünde çok sık yaptığımız gibi- kasma sebebi.
Sorgulama için uygun formül seçimi, alternatif formül seçimi önemli.
Ve en önemlisi. Binlerce satır için formül kullanmaktansa
kod olarak basit bir döngüyü tercih etmek daha işlevsel.

Şimdilik bir çırpıda aklıma gelenler bunlar. Sizin sorunuzun cevabı:
Hayır normal değil. Excel için bitkisel hayat demek bu. Bence sayfa kodlarınıza bakın.
Muhtemelen kod çakışması var.
 
Çözüm
Konu Sahibi
1_ Kullandığınız makrolarda değişkenleri mesela public değişkenleri
boşaltmıyorsanız dosya şişer. Makrolar zamanla yavaşlar.
2_ Bazı alanlarda sürekli formül kullanıyoruz. Ve farklı formüller
kullanıyoruz. Bu formüller bellekte iz bırakır. Burada temizliğin
nasıl yapıldığı önemli. Çok sık formül kullandığınız bir dosyanın
iki kopyasını alın. Birini ClearContents ile diğerini Delete ile temizleyin.
Farkı göreceksiniz.
3_ Aşırı biçimlendirme ve sayfa kodları bir başka neden.
Sayfada her eylemimizde farklı kodların ve biçimlendirme komutlarının
çalışması demek bu. Örneğin sayfa kodunda formülleri yeniden hesapla komutu vermişsek
dosya şişmesin de ne yapsın. Buna bir de modüllerde, butonlarda kullandığınız
kodların çakışmasını ekleyin. Tutarlılık ve bütünlük Excelin ruh sağlığı için önemli. :)
4_ Tablo ve sorgulama tasarımı. Veri tekrarlarına dayanan
tablo tasarımı dosyanız için yüktür.
5_ Formül tasarımı. Dizi formülleri yada fazla değişken gerektiren formüller de
-mesela toplaçarpım formülünde çok sık yaptığımız gibi- kasma sebebi.
Sorgulama için uygun formül seçimi, alternatif formül seçimi önemli.
Ve en önemlisi. Binlerce satır için formül kullanmaktansa
kod olarak basit bir döngüyü tercih etmek daha işlevsel.

Şimdilik bir çırpıda aklıma gelenler bunlar. Sizin sorunuzun cevabı:
Hayır normal değil. Excel için bitkisel hayat demek bu. Bence sayfa kodlarınıza bakın.
Muhtemelen kod çakışması var.
excelcan bilgilendirmeleriniz için teşekkür ederim. Hepsini kendi dosyalarımda da dikkate alıcam.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst