Fonksiyonla çözdüğüm seçimlik işlemin makro çözümü

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşlar,
Fonksiyonla çözdüğüm seçimlik işlemin makro çözümünü arıyorum. 60,000 satırlık bilgi içinden 35 kategoride seçim yapılıyor. Fonksiyon işlemlerini der makro tabanlı yaptığım halde, hem dosya çok büyüyor ve hem de çok yavaşlıyor. Yardımcı olursanız sevinirim.
(Eğer D, E, F kolonlarındaki bilgileri diziye alarak çözüm üretilirse daha da hızlanacağını düşünüyorum)
(Emekli bir öğretmen olarak, farklı yöntemler, konuları öğrenme açısından çok etkilidir diye düşünürüm)
Saygılarımla
 

Ekli dosyalar

Son düzenleme:

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Veridğiniz 42 satırlık veriyi 60.000 satıra kopyaladım. Süre 2,35 saniye.
C++:
Sub Hesapla()
Dim Liste(), Bul As Range, Zaman As Double
    Zaman = Timer
    Veri = Range("D9:F" & Range("D" & Rows.Count).End(3).Row).Value
    Range("G9").Resize(UBound(Veri, 1), 13).ClearContents
    ReDim Liste(1 To UBound(Veri, 1), 1 To 13)
    For i = 1 To UBound(Veri)
        Set Bul = Range("G7:S7").Find(Veri(i, 2), , xlValues, xlWhole)
        If Not Bul Is Nothing Then
            If Veri(i, 1) < Bul.Offset(1, 0) + [G1] And Veri(i, 1) > Bul.Offset(1, 0) - [G1] Then
                Liste(i, Bul.Column - 6) = Veri(i, 3)
            End If
        End If
    Next i
    Range("G9").Resize(UBound(Veri, 1), 13) = Liste
    MsgBox "İşlem Tamamlandı." & Chr(10) & "Süre : " & Format(Timer - Zaman, "0.00") & " Saniye"
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Ömer Faruk Arkadaşım,
İlginize çok teşekkür ederim. Hemen deneyeyim.
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Ömer Faruk Hocam,
Yatayda 62,000 satır, düşeyde 35 kolon ile yapılan işlem 37 sn gibi çıktı. Belki parçaları ayrı ayrı yaparsam daha kısa sürebilir.
İlginize teşekkür ederim.
Saygılarımla
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Bilgisayar performansı da önemli tabi.
Ancak 37 saniye de böyle bir veri için çok fena sayılmaz.
Eğer kolon sayınız örnektekinden farklıysa o kısım da dizi içine alınabilir diye düşünüyorum.
 
Üst