Makro ile Hazırlanmış Dosyanın Yavaş Çalışması "Excel Yanıt Vermiyor."

Hattushil

Altın Üye
Katılım
20 Şubat 2011
Mesajlar
98
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
23-03-2028
Başlıkta da belirtiğim gibi makro ile hazırlanmış bir excel dosyam var ve boyutu gerçek veriler eklendiğinde 41 mb civarı oluyor.
Bu dosyaya iki farklı birimden gelen excel tablolarını ayrı ayrı sheet olarak kopyalıyorum ve eşleşenleri, eşleşmeyenleri, mükerrer olanları getir şeklinde makro mevcut.

Makro bilgim fazla yok, bir arkadaşa yaptırmıştım.
Test verileri 600 satır civarı olduğu için çalışmasında bir sorun çıkmadı ama gerçek verileri kopyaladığımda çalışması devam ediyor (en son 2 saat kadar bekledim) ve Yanıt Vermiyor diyor.

Kopyaladığım dosyalar 365 bin satır ve 265 bin satır.

Hızlı çalışması için neler yapabilrim?
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Yeni bir modüle açınız ve aşağıdaki kodu kopyalayınız.
Makro kodunuzun ilk satırına
TurnOnSpeed TRUE yazınız.
End sub dan önce de
TurnOnSpeed FALSE yazınız.

Kod:
Public Function TurnOnSpeed(x As Boolean)
    
    '-----------------------------
    'Thanks for downloading the code.
    'Please visit our channel for a quick explainer on how to use this code.
    'Feel free to update the code as per your need and also share with your friends.
    'Download free codes from http://vbaa2z.blogspot.com
    'Support our channel: youtube.com/vbaa2z
    'Author: L Pamai (vbaa2z.team@gmail.com)
    '-----------------------------
    
    If x = TRUE Then
        With Application
            PriorCalcMode = Application.Calculation
            .ScreenUpdating = FALSE
            .DisplayAlerts = FALSE
            .EnableEvents = FALSE
            .Cursor = xlWait
            .Calculation = xlCalculationManual
        End With
        
    ElseIf x = FALSE Then
        
        With Application
            .ScreenUpdating = TRUE
            .DisplayAlerts = TRUE
            .EnableEvents = TRUE
            .StatusBar = FALSE
            .Cursor = xlDefault
            .Calculation = PriorCalcMode
        End With
    End If
    
End Function
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
41 mb bir excel dosyası için oldukça büyük bir boyut.
Başıma gelmiş olsa şunu bir kez denerdim. Sadece bahsi geçen dosyadaki verileri, kopyalayıp, yeni boş bir dosyaya “değer olarak yapıştırıp” boyutuna bakardım. Çünkü bazen öyle oluyor ki, sürekli aynı dosyayı uzun süre kullandıkça dosya boyutu şişebiliyor.
Eğer yine 40 mb’a yakın bir boyuttaysa, boyutunu düşürebilmenin pek bir çaresi yok diye düşünürdüm.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,314
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızın 100 satırlık bir örneğini forumda paylaşırsanız daha efektif yardımlar alabilirsiniz.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,356
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Dosyanın boyutundan çok kullanılan algoritmanın sağlamlığı önemli. Gerçek veri içermeyen dosyanızı görüp incelemeden yardım almanız zor...

.
 
Üst