arama hızı yavaşlıyor

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
Merhaba.
Aşağıda uzman arkadaşlarımdan faydalandığım arama yapan kodlarda nasıl bir düzenleme yaparsak aramayı hızlandırabiliriz acaba? Şu an ilgili sayfada 300 satır var ama ileride 5000 adet satıra çıkabilir.Application.ScreenUpdating diye bir olay olduğunu öğrendim fakat uygulayamadım.YArdımcı olacak arkadaşlara teşekkür ederim.İyi çalışmalar.

Private Sub TextBox7_Change()
Set SR = Sheets("RAYİC")
If OptionButton1 = False And OptionButton2 = False And OptionButton3 = False Then
MsgBox "Lütfen arama kriterini seçiniz !", vbCritical, "Dikkat !"
Exit Sub: End If

ListView1.ListItems.Clear

If OptionButton1 = True Then Set ALAN = Range("A3:A" & [A65536].End(3).Row)
If OptionButton2 = True Then Set ALAN = Range("B3:B" & [B65536].End(3).Row)
If OptionButton3 = True Then Set ALAN = Range("F3:F" & [B65536].End(3).Row)

If OptionButton1 = True Then Set BUL = ALAN.Find(TextBox7.Text & "*", LookAt:=xlWhole)
If OptionButton2 = True Then Set BUL = ALAN.Find("*" & TextBox7.Text & "*")
If OptionButton3 = True Then Set BUL = ALAN.Find("*" & TextBox7.Text & "*")



If Not BUL Is Nothing Then
Adres = BUL.Address
Do
satır = BUL.Row
With ListView1
.ListItems.Add , , SR.Cells(satır, 1)
X = X + 1
.ListItems(X).ListSubItems.Add , , SR.Cells(satır, 2)
.ListItems(X).ListSubItems.Add , , SR.Cells(satır, 3)
.ListItems(X).ListSubItems.Add , , SR.Cells(satır, 4)
.ListItems(X).ListSubItems.Add , , SR.Cells(satır, 5)
.ListItems(X).ListSubItems.Add , , SR.Cells(satır, 6)
.ListItems(X).ListSubItems.Add , , SR.Cells(satır, 7)
SAY = SAY + 1

'eğer hücre başında (*) işareti var ise satırı kırmızı renklendir
If Left(SR.Cells(satır, 2), 1) = "*" Then
.ListItems(X).ListSubItems(1).ForeColor = vbBlue
.ListItems(X).ForeColor = vbBlue
End If

'eğer hücre başında (-) işareti var ise satırı kırmızı renklendir
If Left(SR.Cells(satır, 2), 1) = "-" Then
.ListItems(X).ListSubItems(1).ForeColor = vbRed
.ListItems(X).ForeColor = vbRed
End If

End With
Set BUL = ALAN.FindNext(BUL)
Loop While Not BUL Is Nothing And BUL.Address <> Adres
End If
Label1 = SAY & " ADET"
Set SR = Nothing
Set ALAN = Nothing
Set BUL = Nothing
End Sub
 

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
sn mesleki cevap i&#231;in te&#351;ekk&#252;r ederim ama maalesef kodlar&#305;n ba&#351;&#305;na ve sonuna yazd&#305;ktan sonra herhangi bir h&#305;zlanma olmad&#305;.Yinede ba&#351;ka bir fikriniz olursa sevinirim
 
Katılım
26 Ocak 2007
Mesajlar
44
Excel Vers. ve Dili
excel 2003
Kodlar&#305;n&#305;z&#305;n ba&#351;&#305;na
Excel.Application.Calculation = xlCalculationManual

kodlar&#305;n&#305;z&#305;n sonuna
Excel.Application.Calculation =xlCalculationAutomatic

Umar&#305;m yard&#305;mc&#305; olmu&#351;tur
 

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
Maalesef sn peker bu da dosyay&#305; h&#305;zland&#305;ramad&#305;.Arama yaparken ve listviewe veriler gelirken ola&#287;an d&#305;&#351;&#305; g&#246;r&#252;nen bir s&#252;re ge&#231;iyor.Dosya &#351;u an 496 kb ve sadece ilgili sayfada veriler var oda 4000 sat&#305;r gibi.Uzman arkada&#351;lar&#305;mdan yard&#305;m bekliyorum l&#252;tfen.&#304;yi &#231;al&#305;&#351;malar
 

Korhan Ayhan

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

Find komutu en h&#305;zl&#305; arama y&#246;ntemlerinden birisidir. San&#305;r&#305;m sizin dosyan&#305;zda bir problem var. Herhangibir aramada ge&#231;en s&#252;reyi belirtip dosyan&#305;z&#305; eklermisiniz.
 

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
sn COST_CONTROL dosyayı ekledim.İlginiz için teşekkür ederim.Rayiç kitabı bölümünü tıkladığımız zaman form 4-5 sn içinde açılıyor.Bu formdaki ara bölümünde aramada en az o kadar sürüyor.Dosyaya bakarsanız daha iyi anlaşılır.Şimdiden teşekkür ederim.İyi çalışmalar.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Ger&#231;ekte dosyan&#305;z ka&#231; sat&#305;r i&#231;eriyor?
&#304;sterseniz "DataGrid" ile yap&#305;labilir.

DataGrid nesnesine 3-4 sn. gibi zamanda 100.000'den fazla kay&#305;t listelenebiliyor.(ADO ile)
 

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
sn anemos &#351;u an ilgili sayfada 300 sat&#305;r var.Ama ileride 5000 sat&#305;r veriye &#231;&#305;kmas&#305; muhtemel.Bende o sayfay&#305; yakla&#351;&#305;k o 3-4 bin sat&#305;r veriye &#231;&#305;kar&#305;nca dosya a&#287;&#305;rla&#351;t&#305;.Maalesef DataGrit nesnesi ve ADO uygulamalar&#305; ile ilgili yeterli bilgim yok.Yinede bu a&#351;amada bir &#231;&#246;z&#252;m bulursan&#305;z sevinirim.&#304;yi &#231;al&#305;&#351;malar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bir &#246;rnek dosya eklerseniz &#231;ok daha h&#305;zl&#305; &#231;al&#305;&#351;acak y&#246;ntemler &#246;nerilebilir.
 

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
sn leventm bey &#252;stte 7.mesaj&#305;mda &#246;rnek dosyay&#305; eklemi&#351;tim.&#214;nerilerinizi bekliyorum.Te&#351;ekk&#252;r ederim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Arama textbox&#305;ndaki kodu a&#351;a&#287;&#305;daki ile de&#287;i&#351;tirerek denermisiniz. San&#305;yorum ilk kodlara g&#246;re daha h&#305;zl&#305; &#231;al&#305;&#351;&#305;yor.

Kod:
Private Sub TextBox7_Change()
Set SR = Sheets("RAY&#304;C")
If OptionButton1 = False And OptionButton2 = False And OptionButton3 = False Then
MsgBox "L&#252;tfen arama kriterini se&#231;iniz !", vbCritical, "Dikkat !"
Exit Sub: End If
ListView1.ListItems.Clear
If OptionButton1 = True Then sut = 1: Set ALAN = SR.[a:a]
If OptionButton2 = True Then sut = 2: Set ALAN = SR.[b:b]
If OptionButton3 = True Then sut = 6: Set ALAN = SR.[f:f]
If sut = 1 And Len(TextBox7) < 2 Then Exit Sub
say = WorksheetFunction.CountIf(ALAN, TextBox7 & "*")
For a = 1 To say
sat&#305;r = WorksheetFunction.Match(TextBox7 & "*", SR.Range(SR.Cells(sat&#305;r + 1, sut), SR.Cells(65536, sut)), 0) + sat&#305;r
                With ListView1
                   .ListItems.Add , , SR.Cells(sat&#305;r, 1)
                    X = X + 1
                   .ListItems(X).ListSubItems.Add , , SR.Cells(sat&#305;r, 2)
                   .ListItems(X).ListSubItems.Add , , SR.Cells(sat&#305;r, 3)
                   .ListItems(X).ListSubItems.Add , , SR.Cells(sat&#305;r, 4)
                   .ListItems(X).ListSubItems.Add , , SR.Cells(sat&#305;r, 5)
                   .ListItems(X).ListSubItems.Add , , SR.Cells(sat&#305;r, 6)
                   .ListItems(X).ListSubItems.Add , , SR.Cells(sat&#305;r, 7)
                
                'e&#287;er h&#252;cre ba&#351;&#305;nda (*) i&#351;areti var ise sat&#305;r&#305; k&#305;rm&#305;z&#305; renklendir
         If Left(SR.Cells(sat&#305;r, 2), 1) = "*" Then
            .ListItems(X).ListSubItems(1).ForeColor = vbBlue
            .ListItems(X).ForeColor = vbBlue
         End If
                
                'e&#287;er h&#252;cre ba&#351;&#305;nda (-) i&#351;areti var ise sat&#305;r&#305; k&#305;rm&#305;z&#305; renklendir
         If Left(SR.Cells(sat&#305;r, 2), 1) = "-" Then
            .ListItems(X).ListSubItems(1).ForeColor = vbRed
            .ListItems(X).ForeColor = vbRed
         End If
                
                End With
        Next
        Label1 = say & "    ADET"
Set SR = Nothing
Set ALAN = Nothing
End Sub
 

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
Sn leventm bey &#231;ok te&#351;ekk&#252;r ederim belliki &#231;ok u&#287;ra&#351;m&#305;ss&#305;n&#305;z beyninize sa&#287;l&#305;k.Fakat &#231;ok olmazsam e&#287;er bir sorum daha olacak.Ara b&#246;l&#252;m&#252;ndeki texboxta yazd&#305;&#287;&#305;m veri arand&#305;ktan sonra bu textboxu ba&#351;ka arama i&#231;in silmeye &#231;al&#305;&#351;t&#305;&#287;&#305;mda listviewe veriler ge&#231; geliyor.( yani textboxu bo&#351;altt&#305;ktan sonra herhalde change olay&#305; ile ilgili ).Anlatabildim in&#351;allah.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Textboxtaki kodlar&#305;n en &#252;st&#252;ne a&#351;a&#287;&#305;daki sat&#305;rlar&#305; ilave edebilirsiniz ancak buda &#231;ok h&#305;zl&#305; olmayacakt&#305;r. Listview nesnesine veriler d&#246;ng&#252; ile y&#252;klendi&#287;i i&#231;in &#246;zellikle veri say&#305;s&#305; fazla oldu&#287;unda biraz yava&#351; &#231;al&#305;&#351;maktad&#305;r. (ba&#351;ka veri y&#252;kleme y&#246;ntemi varm&#305; bilmiyorum) Bu nesne yerine g&#246;rsellikten fedakarl&#305;k ederek listbox kullanabilirsiniz.

Kod:
If TextBox7 = "" Then
UserForm_Initialize
Exit Sub
End If
 

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
sn leventm bey verdi&#287;iniz bilgiler i&#231;in &#231;ok te&#351;ekk&#252;r ederim.Birde dosyay&#305; biraz daha d&#252;zenleyip daha h&#305;zl&#305; olan ba&#351;ka bir bilgisayarda denedikten sonra sonu&#231;lar&#305; payla&#351;&#305;r&#305;m.Asl&#305;nda listbox konusunda &#231;ok hakl&#305;s&#305;n&#305;z herhalde gidi&#351;at oraya do&#287;ru ! &#304;yi &#231;al&#305;&#351;malar.
 

teknikyapı

Altın Üye
Katılım
30 Nisan 2007
Mesajlar
396
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
13-01-2026
sn leventm bey b&#252;romdaki bilgisayarda ( i&#351;lem&#231;i &#231;ift &#231;ekirdek 2.8) arama kodlar&#305; yakla&#351;&#305;k 5000 sat&#305;ra kadar az etkilenerek sorunsuz &#231;al&#305;&#351;t&#305;.(Di&#287;er bilgisayar P2) .Tekrar yard&#305;mlar&#305;n&#305;z i&#231;in &#231;ok te&#351;ekk&#252;r ederim.&#304;yi &#231;al&#305;&#351;malar.
 
Üst