Birden Fazla Olan Verileri Listbox da Listeleme

  • Konbuyu başlatan ahmedummu
  • Başlangıç tarihi
A

ahmedummu

Misafir
Merhaba arkadaşlar.

Tablo sayfasındaki birden fazla olan verileri listbox1'e alıyor fakat. aşağıdaki kodlar ile isimleri filtreleme yaptığımda birden fazla olan tüm verileri listeliyor. Filtreleme yaparken de birden fazla olan verilerin sadece bir tanesini getirebilir mi. Öğrek resimlerde ilk adlı örnekte form açıldığında listbox 2 verilerin bir tanesi geliyor. Son adlı resimde ise filtreleme yaptıktan sonraki şekli. Filtreleme yapmadığı gibi sayfadaki tüm isimleri listeliyor. Yapmak istediğim ise filtreleme yapınca da sadece verinin birer tanesini getirmesi.

Sheets("tablo").Select
ListBox6.Clear
For Suz = 7 To Range("b65000").End(xlUp).Row
alan = UCase(Replace(Replace(Range("b" & Suz), "a", "A"), "e", "E"))
Veri = UCase(Replace(Replace(TextBox40, "a", "A"), "e", "E"))
If alan Like tablo & "*" Then
ListBox6.AddItem
ListBox6.List(i, 0) = Range("b" & Suz)
i = i + 1
End If
Next Suz

Yardımcı olursanız çok sevinirim.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Öncelikle ekrran görüntüsü yerine örnek excel dosyası paylaşmanızı öneririm.

VEri listelemek için de sql-ado kodlarını kullanmak daha hızlı ve pratik olur diye düşünüyorum ama örnek dosya olmadığından uygulayamıyorum maalesef.
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Öncelikle ekrran görüntüsü yerine örnek excel dosyası paylaşmanızı öneririm.

VEri listelemek için de sql-ado kodlarını kullanmak daha hızlı ve pratik olur diye düşünüyorum ama örnek dosya olmadığından uygulayamıyorum maalesef.
Yusuf bey İlk konu açtığımda, açtığım ilk konuyu göremedim. Heralde internet bağlantısından dolayı konu açılmadı diye düşünerek aynı konuyu tekrar açtım.

Dosyam büyük olduğu için ekran görüntüsü paylaştım.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bu konudaki kullanıcı adınızla diğer konudaki kullanıcı adınız birbirinden farklı gördüğüm kadarıyla, belki de ondan göremediniz.

Dosyanızın gerçek veriler içermeyen ama aynı yapıdaki küçük bir örneğini paylaşabilirsiniz.
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Bu konudaki kullanıcı adınızla diğer konudaki kullanıcı adınız birbirinden farklı gördüğüm kadarıyla, belki de ondan göremediniz.

Dosyanızın gerçek veriler içermeyen ama aynı yapıdaki küçük bir örneğini paylaşabilirsiniz.
Merhaba Yusuf bey
Örnek dosya ekledim.

Form açıldığında benzersiz verileri listeliyor. Ama filtreleme yaptığımda benzer verilerin hepsini listeliyor. Ben bir tanesinin gelmesini istiyorum. Yardımcı olursanız sevinirim.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Eski kodları silip aşağıdaki kodları dener misiniz?

PHP:
Private Sub TextBox1_Change()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row

Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""
sorgu = "select distinct * from [Sayfa1$] where F1 like '%" & TextBox1.Text & "%'"

Set rs = con.Execute(sorgu)
ListBox1.Column = rs.getrows
End Sub

Private Sub UserForm_Initialize()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row

Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""

sorgu = "select distinct * from [Sayfa1$] "
Set rs = con.Execute(sorgu)

ListBox1.Column = rs.getrows
End Sub
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Eski kodları silip aşağıdaki kodları dener misiniz?

PHP:
Private Sub TextBox1_Change()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row

Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""
sorgu = "select distinct * from [Sayfa1$] where F1 like '%" & TextBox1.Text & "%'"

Set rs = con.Execute(sorgu)
ListBox1.Column = rs.getrows
End Sub

Private Sub UserForm_Initialize()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row

Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""

sorgu = "select distinct * from [Sayfa1$] "
Set rs = con.Execute(sorgu)

ListBox1.Column = rs.getrows
End Sub
Teşekkürler Yusuf bey.

Denedim ama filtreleme yapmıyor. Bir de form açıldığında lsitbox'a verile yüklendiğinde alfabetik sıraya göre listeleniyor. O pek sorun değil ama filtreleme yapmadı.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kodları eksik kopyalamış olabilir misiniz? Ben denediğimde filtreliyor çünkü.

Bu arada bulunmayan bir veri arandığında hata veriyor, düzeltmek için textbox kodunu aşağıdakiyle değiştirip deneyin:

Kod:
Private Sub TextBox1_Change()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row

Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""
sorgu = "select distinct * from [Sayfa1$] where F1 like '%" & TextBox1.Text & "%'"

Set rs = con.Execute(sorgu)
If Not rs.EOF And Not rs.BOF Then
    ListBox1.Column = rs.getrows
End If
End Sub
Sıralamayla ilgili sorunu çözemedim maalesef.
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Kodları eksik kopyalamış olabilir misiniz? Ben denediğimde filtreliyor çünkü.

Bu arada bulunmayan bir veri arandığında hata veriyor, düzeltmek için textbox kodunu aşağıdakiyle değiştirip deneyin:

Kod:
Private Sub TextBox1_Change()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row

Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""
sorgu = "select distinct * from [Sayfa1$] where F1 like '%" & TextBox1.Text & "%'"

Set rs = con.Execute(sorgu)
If Not rs.EOF And Not rs.BOF Then
    ListBox1.Column = rs.getrows
End If
End Sub
Sıralamayla ilgili sorunu çözemedim maalesef.
Yusuf bey hakkınız helal edin. Zamanınızı alıyorum. Örnek dosyamı ekte gönderdim. Bakabilir misiniz.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Paylaştığınız dosyanızda filtreleme çalışıyor.

235060
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
1 harfle de çalışıyor. Yazdığınız harf örneğin A ise çok fazla sonuç çıktığından siz filtreleme olmuyor diye düşünmüşsünüzdür.

235061
 
Üst