• DİKKAT

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

VBA ile En Hızlı Vlookup Yapma konusunda yardım

Aynen dediğiniz gibi ...
 
İşlemci: Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
Yüklü Bellek (RAM): 4,00 GB
Sistem Türü: 32 bit işletim sistemi

105.337 satır veri ile test ettiğimde listeleme süreleri bu şekilde;

Levent Bey'in kodları: 76 sn.
Korhan Bey'in kodları: 37 sn.
Zeki Bey'in kodları ...: 4 sn. (Not: ilave 5.000 satır civarı arttı :) )
 
Valla Murat Bey bendeki PC de aynı özelliklerde 32 Bit işlem ci falan ama bende 100 bin kayıt 28 dk sürüyor işyerimde gerekli bildirimleri yaptım bilgiyarım ve Office yazılımım inceleniyor bir sıkıntı varmı belli olacak .. Tşk testler için
 
Merhaba,

Asıl dosyanızın boyutu nedir? Ayrıca içinde formül kullanımı var mı?
 
Valla Murat Bey bendeki PC de aynı özelliklerde 32 Bit işlem ci falan ama bende 100 bin kayıt 28 dk sürüyor işyerimde gerekli bildirimleri yaptım bilgiyarım ve Office yazılımım inceleniyor bir sıkıntı varmı belli olacak .. Tşk testler için

Bir sıkıntı olduğu kesin.
Dosyanın boyutunu şişirdikçe şişirdim 38,3 mb oldu. A:Z arası 100.000 satır + bu şekilde ilave 4 sayfa daha ekledim ama yine de Zeki Bey'in kodları ile 24 sn. sürdü.
Arada az bir fark olsa önemli değil diyeceğim ama 100.000 satırlık veri için 28 dk. çok büyük bir zaman, üstelik bilgisayarımızın özellikleri aynı diyorsunuz. :dusun:
 

Ekli dosyalar

  • test.jpg
    test.jpg
    98.3 KB · Görüntüleme: 30
Dosya 30 Mb bir shetimde bu update ettiğim data nın özetleri var ve data update olduğunda özetl tablolarda updte oluyor. Bu özet tablolar sumproduct ile formullu ancak formullerde bir sıkıntı yok 5-10 sn de günceleniyo ama data shetini statüler shetinden güncellemek zaman alıyor . Ben iş yerindeki PC de sorun olduğunu düşünüyor bir güvenlik güncellemesi yapılmış olabilir.. incelenecek..

Aslında orjinal dosyayı gönderebilsem belki bir sorun varmı yokmu belirlenir.
 
ben bir amatör sitem var oraya atmaya çalışayım ve size linkini vereyim indirmeniz için uygun olur mu ?

Acaba çalışma dosyamdamı bir sıkıntı var ?
 
Dosyanız özel bilgiler içermiyorsa sıkıntı olmaz.
 
Dosyayı yukardaki linke yükledim direk indirebilirsniz Yorumlarınız görüşlerini bekliyorum hocalarım..
 
Dosyanızda ne olduğunu anlayamadığım durum var. i7 & 8 gb ram makinamı bile zorluyor. :)

J,K,L sutunlarını dolduracasınız sanırım. Başka bir dosyada bu üç sütunun sonuçalrı 5-8 sn gibi zamnda oluşturarak, kopyalayıp esas dosyanıza yapıştırsanız (özel yapıştır:değerleri) olur mu?

Toplamda da 30 sn. zamanınızı alır.
 
Sonuçları doğru vermeyebilir ama süreyi test etmek için şu kodları bir deneyiniz;

Kod:
Sub Kaşılaştır()
    Dim cn As Object, rs As Object
    Set cn = CreateObject("adodb.connection")
    Set rs = CreateObject("adodb.recordset")
    cn.Open "provideR=microsoft.ace.oledb.12.0;data source=" & _
    ThisWorkbook.FullName & ";extended properties=""excel 12.0;hdr=yes"""
    sorgu = "SELECT [Statü Özet] from [Statüler$]"
    sorgu = sorgu + "where exists(select *  from [Data$] where [Statüler$].[Barkod Statü]=[Data$].[SBU DATA_Barkod])"
    basla = Timer
    rs.Open sorgu, cn
    Range("K2").CopyFromRecordset rs
    rs.Close: cn.Close
    bitir = Timer
    MsgBox "İşlem : " & vbCr & Format(bitir - basla, "Fixed") & vbCr & "saniyede bitmiştir."
End Sub
 
Olabilir ancak işlemin tek dosyada yapılması isteniyor farklı dosyalarda uğraşmak istenmiyor. Ancak dediğiniz gibide yaparım.. ama fark nedir ha 3 kolonu başka dosyada update etmişin ha burda sonuçta eşleştirme sadece 3 kolon için gerçerli .. Durumun anlşılmasına sevindim acaba sorun bendemi diye düşünmeye başlamıştım..
 
Bunu eklediğim dosyada deneme şansınız oldumu murat bey. linki yukarıda eklemiştim orjinalk dosyamın kopyası zeki beyde bile zorlamış dosya ..isterseniz indirip bir deneyin..
 
Ben de size şunu sormak istiyorum: Kodlara baktınız mı ? Sizce ezberden yazmış olabilir miyim ? ;)

Dosyanızı indirdim.
Önce ilk dosyaya göre anlamaya çalıştım.
Anladım.
Kodları yazmaya başladım.
Bitirdim.
Test ettim.
Ve size yolladım.

Kodları linkini verdiğiniz dosyada herhangi bir Module içerisine yapıştırın ve F5 tuşuna basın.
Bende 6 sn. de sonuç verdi.
 

Ekli dosyalar

  • testtt.jpg
    testtt.jpg
    104 KB · Görüntüleme: 35
Son düzenleme:
MURAT Bey Çok Çok Özür Diliyorum lütfen kabul edin.. Kodunuz sadece K sütununa bilgi getiriyor ama 12 sn de süper ..
Statülerdeki "Statü Özet" datada J kolonuna Statülerdeki "Statü" K kolonuna Statülerdeki "Statü tarihi" L kolonuna yazılmalı..

Gerçekten kodunuz ultra hızlı . :) tabi doğruluğunu kontrol etmedim.. TŞK ..
Kodu bu 3 kolonu update edicek şekilde güncellemeniz mümkünmüdür.

Birde kodun ne yaptığını kısaca yazabilirseniz memnun olurum ..

Birde Eşleştirmediği kayıtlara "Statüsüz" şeklinde yazmalı
 
Geri
Üst