• DİKKAT

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

TextBox Change Olayı ile ListBoxa Farklı Sütunlardan Veriler Çekmek

antonio

Destek Ekibi
Destek Ekibi
Katılım
13 Şubat 2011
Mesajlar
1,166
Excel Vers. ve Dili
Microsoft Office Professional Plus 2013 Türkçe
Forumda ve bende bu konuda sayısız örnek var. Ancak eminim benim gibi çok sayıda insan da hala bu kodların anlamını çözememiştir. Neyi istediğimi eklediğim örnek dosyada net bir şekilde açıkladım. Özetle istediğim: Özellikle redim myarray() ve redim preserve myarray() içine yazılan 1 to 5, 1 to a şeklinde ki ifadeler de Listbox1 de ki sütunlar mı, yoksa Çalışma sayfasında verilerin arandığı sütunlar mı esas alınıyor, kod yanına açıklamalı örneklerle hiç bir kafa karışıklığı bırakmadan bana bu kodu örnekle açıklarsanız minnettar kalırım. Bu tarz arama kodu çok kullanışlı ama hep deneme yanılma ile rastgele kullanıyorum. Bunu çözmek için, çalışma sayfasında ki veri sıralamasıyla listboxa alınacak sıralamada biraz değişiklik yaptım. Çalışma sayfasında önce ad soyad, sonraki kolonda TC Kimlik no yer alıyor. oysa Listbox1 de bunun tersi şekilde sıralanmasını istiyorum. Ayrıca, Listbox1 e şimdiye kadar Sayfada ki yan yana kolonları rowsource ile kaynak göstermeyi anladım. ama diyelim ki (sıralamaya dikkat!) 3, 2, 7, 8, 9. kolonları nasıl varsayılan kaynak gösterebiliriz? Önceden teşekkürler.. Lütfen açıklamalar uzun ve ayrıntılı olsun.
 

Ekli dosyalar

Arkadaşlar bu konuyu çok önemsiyorum. Yeni konuların arasında unutulmayacağını umarım.
 
5 gündür bir cevap yazan çıkmadı.
 
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub UserForm_Initialize()
    Rem Listbox nesnesinin sütun sayısını ayarlıyoruz.
    ListBox1.ColumnCount = 5
    Rem Dizi değişkenine kaç sütun yüklemek istediğimizi belirliyoruz.
    ReDim Dizi(1 To 5, 1 To 1)
    Rem Sayfadaki en son dolu satır değerini değişkene atıyoruz.
    Satir = Cells(Rows.Count, 1).End(3).Row
    Rem X adından bir döngü başlatıyoruz. Burada sayfadaki verileri döngüye alıyoruz.
    Rem Döngümüz 3. satırdan başlayıp son dolu satıra kadar devam edecek.
    For X = 3 To Satir
        Rem Kullandığımız dizi dinamik bir dizi olacak. Bu sebeple artan bir değişken oluşturuyoruz.
        Rem Değer arttıkça diziye yüklenen eleman sayısıda artacak.
        Say = Say + 1
        Rem Dizimizi yeniden boyutlandırıyoruz. 5 sütunlu ve satır sayısı değişken bir dizi tanımlıyoruz.
        Rem Say değişkeni döngü başladığında 1 değerini alacaktır.
        ReDim Preserve Dizi(1 To 5, 1 To Say)
        Rem Dizimizin 1. satır ve 1. sütununa eleman yüklüyoruz.
        Dizi(1, Say) = Cells(X, 3)
        Rem Dizimizin 1. satır ve 2. sütununa eleman yüklüyoruz.
        Dizi(2, Say) = Cells(X, 2)
        Rem Dizimizin 1. satır ve 3. sütununa eleman yüklüyoruz.
        Dizi(3, Say) = Cells(X, 7)
        Rem Dizimizin 1. satır ve 4. sütununa eleman yüklüyoruz.
        Dizi(4, Say) = Cells(X, 8)
        Rem Dizimizin 1. satır ve 5. sütununa eleman yüklüyoruz.
        Dizi(5, Say) = Cells(X, 9)
        Rem Döngümüz son satıra kadar bu şekilde devam edecektir.
    Next
    
    Rem Son aşamada Say değişkenini ulaştığı değeri sorgulayarak oluşan dizimizi Listbox nesnesine yüklüyoruz.
    If Say > 0 Then ListBox1.Column = Dizi
End Sub
 
Allah razı olsun Korhan bey..8 saattir, bu kadar az ve öz anlatım bulamadım forumda.
 
Geri
Üst