• Foruma hoş geldin 👋 Ziyaretçi

    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 tamamen ücretsizdir.

Çözüldü Array Kullanımı Hakkında

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Hayatlife

Yeni Üye
Kullanıcı Bilgileri
Katılım
4 Eyl 2021
Mesajlar
17
Aldığı beğeni
1
Excel Versiyonu
Office 2019 TR
Konuyu Başlatan
Merhabalar,

Excelimin bir sayfasında yaklaşık 250 bin satır data , v bazı sütunları dolu olan ( 1 - 250 arası ) datam mevcut.
Sorgulama sayfamda aynı anda bazı değerleri bu data sayfasında her hücereye bakarak bulduğu değerleri listemek istiyorum..
Bu işlemi dizin haline getirip Array ile daha hızlı sorgulama yapabilir miyiz. Yada dizin olmadan da hızlı sorgu yapılabilir mi ?
 
Çözüm
Dünkü dosyada kalan gibi olayı görmek için alttaki kodu ekledim.
Döngünün son satırından geri geri saymaya başlar.Fazla teferruatlı yapmadım.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Allah Razı olsun Hocam..
mesela 1000 satır sorgu yapıyorum.. 20-25 dk sürüyor. Excel kitleniyor o anda başka bir iş yapmaıyorum excel ..
süre ne kadar kısalırsa çok iyi.
Birde kodları görüntüleyebildniz mi ?
Şimdi bakıyorum abey,öncelik başka konudaydı :)
 
Abey kodlara eriştim.
Findnext kullanılmış benim verdiğim gibi.
Kodlar çok karışık tek tek hangi işlemleri yapıyor onu çözünce kod yazarım ama biraz uzun sürer.
Modül kodlarını buraya atıyorum başka ilgilenenlerde olursa diye
 

Ekli dosyalar

  • moduller.7z
    1.9 KB · Gösterim: 9
Yanış konuya cevap yazmışım :(
 
Abey kodlara bakıyorum ilk gözüme çarpan DoEvents bunun kullanılması yavaşlatıyor bildiğim.
Ayrıca alttakide gereksiz göngü içinde.Görmek istiyorsunuz durumu ama sonuçta yavaşlamaya etken oluyor.



Application.StatusBar = SatBit - SatBas & " kayıttan " & x & " adet kayıt arandı." & " Tamamlanma Oranı : ""%" & Format((x - 2) * 100 / (SatBit - SatBas), "0")
 
Abey kodlara bakıyorum ilk gözüme çarpan DoEvents bunun kullanılması yavaşlatıyor bildiğim.
Ayrıca alttakide gereksiz göngü içinde.Görmek istiyorsunuz durumu ama sonuçta yavaşlamaya etken oluyor.



Application.StatusBar = SatBit - SatBas & " kayıttan " & x & " adet kayıt arandı." & " Tamamlanma Oranı : ""%" & Format((x - 2) * 100 / (SatBit - SatBas), "0")
Kaldırılabilir. Doevents ile ilgili pek bilgim yok ama sorguya olumlu etkisi olacak ise oda kaldırılabilir..
Ayrıca bu kodun yazarı forumdan bir arkadaşımız.. :) . Ben kendisinin bu forumda olduğunu bilmiyordum .
Az önce kendisi konuyu gördüğünü söyledi bana :)
 
Abey bir çok şeyi dizi içine aldım.
Findnext harici bilmiyorum nasıl olur.
Bence önceki kodların yarı hızı kadar hızlanması gerek.
Başka yapableceğim bişey yok maliesef :(
 

Ekli dosyalar

  • Serkan RFQ 04.03.2021-Boş 2.xlsb
    1.3 MB · Gösterim: 9
Abey bir çok şeyi dizi içine aldım.
Findnext harici bilmiyorum nasıl olur.
Bence önceki kodların yarı hızı kadar hızlanması gerek.
Başka yapableceğim bişey yok maliesef :(
Teşekkür ederim Hocam.. Ben test ederim önceki ile aynı sorguları denerim. sürelere bakarım.
elinize sağlık
 
Rica ederim.Ne kadar kaldığını ekranda göremezsiniz kod çalışrken oraları sildim hızlı olsun diye yinede eklerseniz görebilirsiniz.
 
Doevents ile ilgili pek bilgim yok
Bunu ekleyen üstad bence statusbarda kalan durumları göstermek için eklemiş.
Status br yerine aslında bir usreformdada gösterilebilirdi tabii yine doevents gerekecekti.Yada progressbarda kullanılabilirdi.250bin satır ve 250 sütun olayı vahim :)
 
Aslında jeton yeni düştü bende.Findnext yerine aranan sütun sütun karşılaştırılarakta bulunabilirdi sanki.Ama hız naasıl olur bilemiyorum.Yarın felan zaman bulursam ilgilenebilirim.
 
Aslında jeton yeni düştü bende.Findnext yerine aranan sütun sütun karşılaştırılarakta bulunabilirdi sanki.Ama hız naasıl olur bilemiyorum.Yarın felan zaman bulursam ilgilenebilirim.

Teşekkür ederim. Hocam.. Diğer yöntem de denenebilir.
Durumu görmek iyi olur . Kaçıncı sorguda olduğunu falan. 3 aşağı beş yukarı ne zaman biteceğini anlayabiliyoruz..
 
Dünkü dosyada kalan gibi olayı görmek için alttaki kodu ekledim.
Döngünün son satırından geri geri saymaya başlar.Fazla teferruatlı yapmadım.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Ekli dosyalar

  • Serkan RFQ 04.03.2021-Boş 2.xlsb
    1.3 MB · Gösterim: 7
Çözüm
Dünkü dosyada kalan gibi olayı görmek için alttaki kodu ekledim.
Döngünün son satırından geri geri saymaya başlar.Fazla teferruatlı yapmadım.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Hocam Zaman ayırdığın için teşekkür ederim..
Mevcut Dosya ile sizin dosyayı test ettim.. 250 bin satırda .. 30 satır sorgu yaptım .. sütunlarda da veri vardır..
Mevcut dosya 01:54 dakikada işlemi yaptı ama sizin dosya 16:00 dakika sürdü..
Bilginiz olsun..
 
Hocam Zaman ayırdığın için teşekkür ederim..
Mevcut Dosya ile sizin dosyayı test ettim.. 250 bin satırda .. 30 satır sorgu yaptım .. sütunlarda da veri vardır..
Mevcut dosya 01:54 dakikada işlemi yaptı ama sizin dosya 16:00 dakika sürdü..
Bilginiz olsun..
Rica ederim.Önceki bir mesajınızın birinde 20-25 dakika gibi yazmıştınız yanılmıyorsam :)
Normalde az sürmeliydi neyse eski kod daha iyi o zaman abey :)
 
Allah Razı olsun Hocam..
mesela 1000 satır sorgu yapıyorum.. 20-25 dk sürüyor. Excel kitleniyor o anda başka bir iş yapmaıyorum excel ..
süre ne kadar kısalırsa çok iyi.
Birde kodları görüntüleyebildniz mi ?
Burda buldum :)

Hayırlı geceler abey.
 
Birde fazla değişikliik yapmamıştım gereksiz döngüleri silmiştim statusbar gibi örneğin.
Belki kodlarda vardı application.enableevents=false gibi belki bunları pasif yapmışta olabilir.Bu arada 30 satır yerine 30 sütun yazacaktınız galiba.
Kolay gelsin.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst