• DİKKAT

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

Lisbox'a veri aldırma, arama

Katılım
20 Eylül 2010
Mesajlar
11
Excel Vers. ve Dili
2007 türkçe
Ekteki dosyayı internetteki excel formlarından derlediğim çalışmaları uyarlayarak yaptım. Ancak veriler az iken problem yok ancak sayfadaki veriler çok olunca verilerin yüklenmesinde gecikme yaşanıyor. Verilerin yüklenmesinde gecikme önlenebilir mi? Değişiklik olursa arama fonksiyonunun yeniden düzenlenmesi mi gerekir? Yardımcı olursanız sevinirim.
 

Ekli dosyalar

Dosyanız ektedir.
Yinede Daha hızlı çalışması için kodları kodları textboxın exit olayına yazabilirsiniz.
Dosyanız ektedir.:cool:

Kod:
Private Sub TextBox25_Change() 'VERI ARAMA'
Dim sayi As Byte
Dim sat As Long
Dim deg1, deg2 As String
If OptionButton1.Value = True Then sayi = 3
If OptionButton2.Value = True Then sayi = 4
If OptionButton3.Value = True Then sayi = 9
If OptionButton4.Value = True Then sayi = 12
Application.ScreenUpdating = False
ListBox1.RowSource = ""
Sheets("RAPOR").Range("A1:L65536").ClearContents
ActiveSheet.Range("A1").AutoFilter
ActiveSheet.Range("A1").AutoFilter field:=sayi, Criteria1:=TextBox25.Text & "*"
ActiveSheet.Range("A1").CurrentRegion.Copy Sheets("RAPOR").Range("A1")
ListBox1.RowSource = "RAPOR!A2:I" & Sheets("RAPOR").Cells(65536, "A").End(xlUp).Row
ActiveSheet.Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
 

Ekli dosyalar

Sayın Gizlen;
cevabınız için teşekkürler. Ancak benim programlama bilgim çok zayıf. Zaten bu programı da siteye gönderilen bir programa uyarlayarak yaptım. Onu da anlamak için epey uğraştım. Sonunda programı kendi kullanabileceğim bir hale getirdim. Eğer benden bu kadar demezseniz "rapor" çalışma sayfasını neden eklediğinizi açıklarsanız sevinirim. Ondan sonra çözmek için tekrar çalışmaya başlarım. İşin içinden çıkabilirsem ne ala. Çıkamazsam tekrar size müracaat edebilirim. Cahilliğime verin ama rapor isimli çalışma sayfası eklenmeden gönderdiğim program üzerinde düzeltme yapılamaz mı? Teşekkürler. İyi akşamlar
 
Sayın Gizlen;
cevabınız için teşekkürler. Ancak benim programlama bilgim çok zayıf. Zaten bu programı da siteye gönderilen bir programa uyarlayarak yaptım. Onu da anlamak için epey uğraştım. Sonunda programı kendi kullanabileceğim bir hale getirdim. Eğer benden bu kadar demezseniz "rapor" çalışma sayfasını neden eklediğinizi açıklarsanız sevinirim. Ondan sonra çözmek için tekrar çalışmaya başlarım. İşin içinden çıkabilirsem ne ala. Çıkamazsam tekrar size müracaat edebilirim. Cahilliğime verin ama rapor isimli çalışma sayfası eklenmeden gönderdiğim program üzerinde düzeltme yapılamaz mı? Teşekkürler. İyi akşamlar
Rapor sayfasını ekledim çünkü
diğer sayfayı vba kod ile süzüp süzülenleri o sayfaya attıorum.
Böylece listboxın Row source yöntemi ile verileri o sayfadan listboxa alıyorum.
Unutmayın rowsource yöntemi ile verileri listboxa almak en hızlı yöntemdir.
Ayrıca vba kod ile sayfayı süzmek sizin yazdığınzı kodlarla çok yavaş olur.Bu 1
bir.
İkincisi listboxa add item yöntemi ile veri almayın.
Eğer 500 - 1000 satırsa alın ama çok büyük boyutlu yani büyük kayıtlarda sabaha kadar beklersiniz listboxın dolmasını.
Ayrıca addd item yöntemi en fazla 10 sütun alabilmektedir.Oysa rowsorce ile istediğiniz kadar sütun listeleyebilirsiniz.
Kodlarınız listboxa rowsource yöntemi ile almaya bakın.Eğer olmuyorsa dizi yöntemi ilede alabilirsiniz.
2nci tavsiyem dizi yöntemi ile verileriniz almaktır.
Bu iş için dizi kavramınıda bilmeniz gerekir.
Forumda dizi konusunu araştırınız.
Tabii uygunsa birde ado kullanrak alabilirsiniz.Bundada sql sorgulama yapısını bilmeniz gerekir.
Basit sorgularla başlayabilirsiniz.
Kolay gelsin.
Unutmayın additem yönteminden uzakdurun.:cool:
 
Cevap için teşekkürler. Bu dosyanın kaydet olayında yeni bir veri kaydedildiğinde her eklemede yazdırma alanı belirlenmesini nasıl yapabiliriz. Silmede kaydetmede en son satır yazdırma alanı sınırı olarak belirlensin. Dosyamızda A11 ile I11'in yazdırma alanı olarak belirlensin. a12 satırına yeni bir veri eklendiğinde yazdırma alanı bir sonraki satır olarak belirlensin. İyi çalışmalar
 
ActiveSheet.PageSetup.PrintArea = "$A$1:$I$" & [a65536].End(3).Row+1
 
Geri
Üst