• DİKKAT

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

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

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
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
 
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.
 
hocam çok teşekkür ederim bu kodlar çok işime yarayacak
 
Rica ederim.
 
Geri
Üst