Sayfalara Veri Dağıtma Kod Revize Yardımı

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Sayın Uzman arkadaşlar,

Ekteki çalışmaDA “Veri Güncelle” isimli buton ile kapalı kitaptan veri transferi yapıyorum.
“Sayfalara Dağıt” isimli buton ile daha önceden oluşturduğum sayfalara, “VERİTABANI” sayfasındaki verileri sayfa isimlerine göre dağıtıyorum.
Asıl çalışmadaki veriler ay sonunda 9.000 satıra ulaştığından ve bu verilerin 32 adet sayfaya dağıtılması gerektiği için kodlar çok yavaş çalışmaktadır.
Mevcutta yavaş çalışan kodların revize edilmesi konusunda çok değerli yardımlarınızı rica ediyorum.

Saygılarımla,
Ömer Ali ÜZÜMCÜ

Örnek Çalışma Linki:
http://s2.dosya.tc/server9/91wtne/ORNEK_BELIEVING_30052019.rar.html
 

Ekli dosyalar

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,324
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Kullandığınız kodların başına
Kod:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
satırlarını; sonuna da
Kod:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
satırlarını ekleyip deneyiniz.
İyi çalışmalar...
 

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Sayın Ömer bey,

Konuya gösterdiğiniz ilgi ve çözümünüz için size çok teşekkür ederim.
ALLAH sizden ve sevdiklerinizden razı olsun.
İyi geceler.

Saygılarımla,
Ömer Ali ÜZÜMCÜ
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,105
Excel Vers. ve Dili
office2010
yanlış cevap nedeniyle silindi.
 
Son düzenleme:

Korhan Ayhan

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

Sizin kullandığınız döngüye göre biraz daha performans sağlar.

Kod:
Option Explicit

Sub Sayfalara_Aktar()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim X As Integer, Son As Long, Zaman As Double
    Dim Veri As Variant, Satir As Long
    
    Zaman = Timer
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Set S1 = Sheets("VERİTABANI")
    
    S1.Range("D2:D1048576").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=S1.Range("AZ2"), Unique:=True

    For X = 3 To S1.Cells(S1.Rows.Count, "AZ").End(3).Row
        If S1.Cells(X, "AZ").Value <> "" Then
            S1.Range("A2:AJ" & Rows.Count).AutoFilter 4, S1.Cells(X, "AZ").Value
            Son = S1.Cells(S1.Rows.Count, 6).End(3).Row
            If Son > 2 Then
                Set S2 = Sheets(S1.Cells(X, "AZ").Value)
                Satir = S2.Cells(S2.Rows.Count, 1).End(3).Row + 1
                S1.Range("D4:E" & Son).Copy
                S2.Cells(Satir, 1).PasteSpecial xlPasteValues
                S2.Cells(Satir, 1).PasteSpecial xlPasteFormats

                S1.Range("I4:X" & Son).Copy
                S2.Cells(Satir, 3).PasteSpecial xlPasteValues
                S2.Cells(Satir, 3).PasteSpecial xlPasteFormats
            End If
        End If
    Next

    On Error Resume Next
    S1.Range("AZ:AZ").Delete
    S1.ShowAllData
    On Error GoTo 0

    Set S1 = Nothing
    Set S2 = Nothing

    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    
    MsgBox "Veriler sayfalara aktarılmıştır." & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye"
End Sub
 

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Sayın Korhan Ayhan,

Konuya gösterdiğiniz ilgi ve yardımınız için size çok teşekkür ederim.
ALLAH sizden ve sevdiklerinizden razı olsun.
Cuma gününün ve Kadir gecesinin hayırlara vesile olmasını dilerim.

Saygılarımla,
Ömer Ali ÜZÜMCÜ
 
Üst