Makro çok yavaş çalışıyor. Nasıl hızlandırabiliriz

ruhadam26

Altın Üye
Katılım
4 Aralık 2017
Mesajlar
116
Excel Vers. ve Dili
2010-2016 türkçe
Altın Üyelik Bitiş Tarihi
20-12-2025
Merhabalar,
Kendimce yapmaya çalışmış olduğum bir veri yönetimi uygulamasında klasik kaydet değiştir sil butonları var. Lakin bu butonlara bastığımda çok yavaş çalışmaktadır. Kodların tamamını forumdan derleyerek yazmaya çalıştım. Muhtemelen bu kodların daha seri çalışması lazım ama biraz karıştı gibi. Makroyu nasıl daha hızlı çalıştırabiliriz yardımlarınızı bekliyorum.
 

Ekli dosyalar

ruhadam26

Altın Üye
Katılım
4 Aralık 2017
Mesajlar
116
Excel Vers. ve Dili
2010-2016 türkçe
Altın Üyelik Bitiş Tarihi
20-12-2025
Değerli üstadlar kodları derleyip düzenleyerek daha kısa ve seri şekilde çalışması sağlanabilir mi?. Biraz karışık bir makro oldu ama artık acemiliğime verin. Satır sayısı arttıkça muhtemelen daha da yavaşlayacak.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Merhaba aşağıdaki linkte paylaştığım kodu makronuza ekleyiniz.
 

ruhadam26

Altın Üye
Katılım
4 Aralık 2017
Mesajlar
116
Excel Vers. ve Dili
2010-2016 türkçe
Altın Üyelik Bitiş Tarihi
20-12-2025
Merhaba aşağıdaki linkte paylaştığım kodu makronuza ekleyiniz.
Hocam modül oluşturup içine bu kodu yapıştırdım ama bir fark olmadı gibi ya da ben beceremedim :(
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Dosyanızı dosya.tc sitesi yükleyip, link paylaşırsanız, yardımcı olabilirim.
 

Korhan Ayhan

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

Kullandığınız sütun sayısı fazla dolayısı ile veri işlemek biraz zaman alıyor. Siz bir de buna görsellik katmak için "ProgressBar" görünümlü "Label" kullanmışsınız.

KAYDET tuşundaki aşağıdaki satırı silip denerseniz hızlandığını görebilirsiniz.

Call Main2 'Progress Bar2
 

ruhadam26

Altın Üye
Katılım
4 Aralık 2017
Mesajlar
116
Excel Vers. ve Dili
2010-2016 türkçe
Altın Üyelik Bitiş Tarihi
20-12-2025
Merhaba,

Kullandığınız sütun sayısı fazla dolayısı ile veri işlemek biraz zaman alıyor. Siz bir de buna görsellik katmak için "ProgressBar" görünümlü "Label" kullanmışsınız.

KAYDET tuşundaki aşağıdaki satırı silip denerseniz hızlandığını görebilirsiniz.

Call Main2 'Progress Bar2
İlginiz için teşekkürler korhan hocam formda 2 sayfa var 2. sayfada dediğinizi yaptım kaydet2 butonundaki call maini kaldırdım orada fazla satır sutun olmadığı için seri kaydediyor lakin ilk sayfa da aynı işlemi yaptığımda aynı yavaşlık devam ediyor.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Aşağadaki örneği diğer butonlarada uygulayabilirsiniz. UserFormda OBK sekmesindeki kaydet butonu aşağıdaki gibi olmalıdır.

Kod:
Private Sub CommandButton1_Click() 'kaydet
TurnOnSpeed True
Sizin kodlarınız.
TurnOnSpeed False
End Sub
 

Korhan Ayhan

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

C++:
Private Sub CommandButton1_Click() 'kaydet
    Dim Satir As Long
    Dim txt As Control
    
    Satir = Sheets("Obk").[a65536].End(3).Row + 1
    
    If TextBox1.Text = Empty Then
        MsgBox "TARİH GİRİNİZ", vbExclamation, ""
        Exit Sub
    End If
    
    If ComboBox1.Text = Empty Then
        MsgBox "SİSTEM TÜRÜNÜ SEÇİNİZ", vbExclamation, ""
        Exit Sub
    End If
    
    ListBox1.RowSource = ""
    s = 2:
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    For i = 1 To 118
        Cells(Satir, s) = Controls("TextBox" & i).Value
        If s = 7 Then
            s = s + 3
        Else
            s = s + 1
        End If
    Next i
    
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    
    Cells(Satir, 8) = ComboBox1.Text
    Cells(Satir, 9) = ComboBox2.Text

    UserForm_Initialize
    Sheets("Obk").Activate
    
    MsgBox "Kayıt Başarılı"
End Sub
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Ben görüşümü söylüyorum : Bir program baştan inşa edilirken neyin ihtiyaç olduğu neyin ihtiyaç olmadığını hesaba katmıyoruz. Bir uçağı düşünün, ne kadar ağır olursa o kadar hızı azalır. Bir Excel sayfasında da veriler yönetilebilir.
 

ruhadam26

Altın Üye
Katılım
4 Aralık 2017
Mesajlar
116
Excel Vers. ve Dili
2010-2016 türkçe
Altın Üyelik Bitiş Tarihi
20-12-2025
Aşağadaki örneği diğer butonlarada uygulayabilirsiniz. UserFormda OBK sekmesindeki kaydet butonu aşağıdaki gibi olmalıdır.

Kod:
Private Sub CommandButton1_Click() 'kaydet
TurnOnSpeed True
Sizin kodlarınız.
TurnOnSpeed False
End Sub
teşekkür ederim büyük ölçüde hızlandı.
 

ruhadam26

Altın Üye
Katılım
4 Aralık 2017
Mesajlar
116
Excel Vers. ve Dili
2010-2016 türkçe
Altın Üyelik Bitiş Tarihi
20-12-2025
Deneyiniz.

C++:
Private Sub CommandButton1_Click() 'kaydet
    Dim Satir As Long
    Dim txt As Control
   
    Satir = Sheets("Obk").[a65536].End(3).Row + 1
   
    If TextBox1.Text = Empty Then
        MsgBox "TARİH GİRİNİZ", vbExclamation, ""
        Exit Sub
    End If
   
    If ComboBox1.Text = Empty Then
        MsgBox "SİSTEM TÜRÜNÜ SEÇİNİZ", vbExclamation, ""
        Exit Sub
    End If
   
    ListBox1.RowSource = ""
    s = 2:
   
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
   
    For i = 1 To 118
        Cells(Satir, s) = Controls("TextBox" & i).Value
        If s = 7 Then
            s = s + 3
        Else
            s = s + 1
        End If
    Next i
   
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
   
    Cells(Satir, 8) = ComboBox1.Text
    Cells(Satir, 9) = ComboBox2.Text

    UserForm_Initialize
    Sheets("Obk").Activate
   
    MsgBox "Kayıt Başarılı"
End Sub
teşekkür ederim hocam call main olmadan da hızlı bir şekilde çalıştı bu yazdıklarınızda sağolun
 

ruhadam26

Altın Üye
Katılım
4 Aralık 2017
Mesajlar
116
Excel Vers. ve Dili
2010-2016 türkçe
Altın Üyelik Bitiş Tarihi
20-12-2025
Ben görüşümü söylüyorum : Bir program baştan inşa edilirken neyin ihtiyaç olduğu neyin ihtiyaç olmadığını hesaba katmıyoruz. Bir uçağı düşünün, ne kadar ağır olursa o kadar hızı azalır. Bir Excel sayfasında da veriler yönetilebilir.
çok haklısınız hocam ben dah yeniyim oyüzden ordan burdan araştırarak derledim bu uygulamayı derdimde zaten bu kalabalıklık nasıl azalır onu bulmak sağolsun forumdaki hocalar yeteri kadar yardımcı oluyorlar.
 
Üst