kodun farklı hızlarda çalışması

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Arkadaşlar aşağıdaki yazdığım kodu, kod yazma penceresinde çalıştırdığım zaman işlem yapması saniye sürmüyor yani çok hızlı çalışıyor. Ama bu kodu bir düğmeye makro olarak atadığımda yani bir botun ile bu kodu çalıştırdığımda işlem yapması 3-4 saniye sürüyor. Bu neden böyle ? Mantıklı bir açıklaması var mı ?
Kod:
Sub RaporKayitBul()
    Dim Raporlar As Worksheet
    Dim Veri As Worksheet
    Dim tarih As Date
    Dim i As Integer
    Dim gun As Integer

    Set Raporlar = Sheets("Raporlar")
    Set Veri = Sheets("Veri")
    tarih = Raporlar.Range("K3").Value
    
    gun = DateDiff("d", DateSerial(Year(tarih), 1, 1), tarih) + 1

    For i = 6 To 66
        Raporlar.Cells(i, 3).Value = Veri.Cells(gun, i - 3).Value
        Raporlar.Cells(i, 4).Value = Veri.Cells(gun, i + 58).Value
        Raporlar.Cells(i, 5).Value = Veri.Cells(gun, i + 119).Value
        Raporlar.Cells(i, 6).Value = Veri.Cells(gun, i + 180).Value
        Raporlar.Cells(i, 7).Value = Veri.Cells(gun, i + 241).Value
        Raporlar.Cells(i, 8).Value = Veri.Cells(gun, i + 302).Value
        Raporlar.Cells(i, 9).Value = Veri.Cells(gun, i + 363).Value
        Raporlar.Cells(i, 10).Value = Veri.Cells(gun, i + 424).Value
        Raporlar.Cells(i, 11).Value = Veri.Cells(gun, i + 485).Value
        Raporlar.Cells(i, 12).Value = Veri.Cells(gun, i + 546).Value
    Next i
    
        Raporlar.Cells(67, 4).Value = Veri.Cells(gun, 613).Value
        Raporlar.Cells(68, 4).Value = Veri.Cells(gun, 614).Value
        Raporlar.Cells(69, 4).Value = Veri.Cells(gun, 615).Value
End Sub
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,362
Excel Vers. ve Dili
2019 TR
Verileri hücrelere kayıt ederken ekran yenileme hızı etkileyebilir.
Kodun ilk satırına Application.ScreenUpdating = False son satırına da Application.ScreenUpdating = True ekleyerek deneyebilirsiniz.

Ek olarak, ilgili sayfada hesaplama işlemleri varsa, veri kaydı oldukça hesaplama yapılmaması için işlemin ilk satırına Application.Calculation = xlCalculationManual son satıra Application.Calculation = xlCalculationAutomatic eklenebilir.
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
hocam çok teşekkür ederim bu kodlar çok işime yarayacak
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,362
Excel Vers. ve Dili
2019 TR
Rica ederim.
 
Üst