• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü 150 bin satırlık stokta For Each döngüsü Excel'i kilitliyor (Dizi/Dictionary yardımı)

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

_nur

Yeni Üye
Katılım
26 Tem 2024
Mesajlar
4
Aldığı beğeni
0
Katkı
%0.00
Excel V
Office 2003 TR
Konu Sahibi
Selamlar herkese, şirketteki stok eşleştirme işi için bir makro yazdım ama veri seti 150 bin satırı geçince Excel direkt kilitleniyor, yanıt vermiyor moduna düşüyor. Screenupdating olayını falan kapattım ama nafile, işlem 10 dakikadan fazla sürüyor. Forumda hocalarımızın Dictionary rehberini okudum ama iki farklı sütunu yan yana karşılaştırıp eşleşmeyenleri yeni sayfaya atma mantığını döngüden diziye (Array) nasıl dökeceğimi çözemedim. Yazdığım kod bloklarını ve 200 satırlık demo halini ekliyorum, nerede hata yapıyorum bakabilir misiniz?


HTML:
ASP.net:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Selamlar herkese, şirketteki stok eşleştirme işi için bir makro yazdım ama veri seti 150 bin satırı geçince Excel direkt kilitleniyor, yanıt vermiyor moduna düşüyor. Screenupdating olayını falan kapattım ama nafile, işlem 10 dakikadan fazla sürüyor. Forumda hocalarımızın Dictionary rehberini okudum ama iki farklı sütunu yan yana karşılaştırıp eşleşmeyenleri yeni sayfaya atma mantığını döngüden diziye (Array) nasıl dökeceğimi çözemedim. Yazdığım kod bloklarını ve 200 satırlık demo halini ekliyorum, nerede hata yapıyorum bakabilir misiniz?


HTML:
ASP.net:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Deneyiniz;
 
Alternatif
Eğer Sn SNNAY sayfalar dosyasındaki gibi ise ADO ile yapılmış örnek dosya.
 
#4 mesajdaki dosyada sadece Stok Kodu nu değilde tüm alanların test edilmesini istiyorsanız aşağıdaki kodları kullanın
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Çözüm
Konu Sahibi
SNNAY hocam, Alicimri hocam, ikinizin de emeğine, bilgisine sağlık,
Forumun kalitesi gerçekten çok başka, harika iki farklı alternatif çözüm gelmiş.

Performans test sonuçlarını paylaşmak istiyorum:
  • SNNAY hocamın Dictionary (Dizi) yöntemi: Kendi 150 bin satırlık orijinal stok datamda kodu denedim. Eskiden 10 dakikadan fazla süren ve Excel'i kilitleyen işlem, inanılmaz bir şekilde sadece 2 saniyede bitti ve tüm eşleşmeyenleri yeni sayfaya hatasız aktardı. RAM üzerinden işlem yapmanın farkı buymuş gerçekten.
  • Alicimri hocamın ADO / SQL yöntemi: Bu çözümü de merak edip hemen test ettim. Excel'i bir SQL veritabanı gibi çalıştırıp verileri çekme mantığı kusursuz çalışıyor. Özellikle veri boyutu daha da büyüdüğünde bu ADO yöntemi tam bir cankurtaran olacak. 5. mesajda tüm alanları test etmek için verdiğiniz ek revize kodlar da tam oturdu.
İki yöntem de benim durumumda kilitlenme sorununu tamamen kökten çözdü ve işlemi saniyelere indirdi. Benim açımdan konu fazlasıyla çözülmüştür.
Çok teşekkür ederim hocalarım, iyi ki varsınız
 
Sonradan düşündüm de sadece tek taraflı test ediliyor. Ekteki dosyada;
1. Eğer Stok Kodu aynı alanlardan biri farklı ise üst üste iki kayıtıda alıyor, verilerin yanındaki sütuna sayfa adını yazıyor.
2. Eğer bir sayfa var, diğer sayfada yoksa tek kayıt yapıyor, yine verilerin yanındaki sütuna sayfa adını yazıyor
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst