[Yardım]  ComboBox ile ListBoxta süz

Verilerinizi listeleyebileceğiniz liste kutusu

ComboBox ile ListBoxta süz

İleti#1)  seheryıldız » 14 Mar 2019 14:48

Arkadaşlar merhaba,
Benim ListBox'ta 17 sütunum var fakat süzerken ( sanırım ListBox a AddItem ile almamdan kaynaklı olsa gerek) sadece 10 sütun olduğunda çalışıyor. Bunu 17 sütun olarak süzmek için kodu nasıl bir revize yapmam gerek ?
Kullandığım kod bloğu şöyle.

Kod: Tümünü seç
Private Sub ComboBox1_Change()
ListBox1.RowSource = Empty
ListBox1.Clear
ListBox1.ColumnCount = 17
ListBox1.ColumnWidths = "60;60;60;60;60;60;60;60;60;60;60;60;60;60;60;60;60"
With Sheets("Detay")
For Each isim In .Range("a2:a" & .Range("a65536").End(3).Row)
If UCase(LCase(isim)) Like UCase(LCase(ComboBox1)) & "*" Then
         liste = ListBox1.ListCount
            ListBox1.AddItem
            ListBox1.List(liste, 0) = isim
            ListBox1.List(liste, 1) = isim.Offset(0, 1)
            ListBox1.List(liste, 2) = isim.Offset(0, 2)
            ListBox1.List(liste, 3) = isim.Offset(0, 3)
            ListBox1.List(liste, 4) = isim.Offset(0, 4)
            ListBox1.List(liste, 5) = isim.Offset(0, 5)
            ListBox1.List(liste, 6) = isim.Offset(0, 6)
            ListBox1.List(liste, 7) = isim.Offset(0, 7)
            ListBox1.List(liste, 8) = isim.Offset(0, 8)
            ListBox1.List(liste, 9) = isim.Offset(0, 9)
            'ListBox1.List(liste, 10) = isim.Offset(0, 10)
            ' ListBox1.List(liste, 11) = isim.Offset(0, 11)
            ' ListBox1.List(liste, 12) = isim.Offset(0, 12)
            ' ListBox1.List(liste, 13) = isim.Offset(0, 13)
            ' ListBox1.List(liste, 14) = isim.Offset(0, 14)
            ' ListBox1.List(liste, 15) = isim.Offset(0, 15)
            ' ListBox1.List(liste, 16) = isim.Offset(0, 16)
                       
            End If
        Next
End With
End Sub

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "süz"

End Sub


Süzmek ile alakalı sıkıntım yok sadece 17 sütunu görüntülemem gerekiyor.
Kullanıcı avatarı
seheryıldız
Siteye Alışmış
 
Kayıt: 15 Nis 2015 08:21
Meslek: yönetici asistanı
Yaş: 31
İleti: 386
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: istanbul/maltepe

Cevap: ComboBox ile ListBoxta süz

İleti#2)  tasad » 14 Mar 2019 22:06

Kodları deneyin.
Kod: Tümünü seç
Private Sub ComboBox1_Change()
ListBox1.RowSource = Empty
Set con = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
con.Open "provider=microsoft.ace.oledb.12.0;" & "data source=" & ThisWorkbook.FullName & ";" & _
"extended properties=""excel 12.0;hdr=no"""
sorgu = "select * from [Detay$] where f1 like '%" & ComboBox1.Text & "%'"
rs.Open sorgu, con, 1, 1
With ListBox1
    .ColumnCount = rs.Fields.Count
    .Column = rs.getrows
End With
End Sub
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 580
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

Cevap: ComboBox ile ListBoxta süz

İleti#3)  seheryıldız » 19 Mar 2019 20:35

Merhaba geç cevap verdiği için zür dilerim istanbul dışına çıkmıştım yeni döndüm.
Cevabınız için teşekkür ederim tam istediğim gibi olmuş fakat tek sorun ColumnHeads True yaptığımda başlıkların içi boş görünüyor.
Başlıklarında görünebilmesi için A2:Q20000 arasına (detayım) olarak bir ad tanımlandı bunuda ekleyebilirmiyiz ?
Kullanıcı avatarı
seheryıldız
Siteye Alışmış
 
Kayıt: 15 Nis 2015 08:21
Meslek: yönetici asistanı
Yaş: 31
İleti: 386
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: istanbul/maltepe

Cevap: ComboBox ile ListBoxta süz

İleti#4)  tasad » 20 Mar 2019 09:26

Kodları deneyin.Olmaz ise örnek dosya ekleyin. ColumnHeads false yapın.
Kod: Tümünü seç
Private Sub ComboBox1_Change()
Dim con As Object, rs As Object
ListBox1.RowSource = Empty
On Error Resume Next
Set con = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
con.Open "provider=microsoft.ace.oledb.12.0;" & "data source=" & ThisWorkbook.FullName & ";" & _
"extended properties=""excel 12.0;hdr=no"""
  sorgu = "select * from [Detay$] where f1 like '%" & ComboBox1.Text & "%'"
rs.Open sorgu, con, 1, 1
With ListBox1
    .ColumnCount = rs.Fields.Count
    .Column = rs.getrows
End With
ListBox1.AddItem Sheets("Detay").Range("a1"), 0
ListBox1.AddItem "", 1
For baslik = 1 To 17
ListBox1.List(0, baslik - 1) = Sheets("Detay").Cells(1, baslik)
ListBox1.List(1, baslik - 1) = ""
Next baslik
End Sub
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 580
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: ComboBox ile ListBoxta süz

İleti#5)  seheryıldız » 21 Mar 2019 18:49

Cevabınız için teşekkür ederim .
Sonuca yaklaştık fakat bu seferde başlıklar normal satır gibi görünüyor ve altında boş bir satır daha oluştu. Yani ColumHead içinde başlık olması gerekiyor.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
seheryıldız
Siteye Alışmış
 
Kayıt: 15 Nis 2015 08:21
Meslek: yönetici asistanı
Yaş: 31
İleti: 386
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: istanbul/maltepe

Cevap: ComboBox ile ListBoxta süz

İleti#6)  Orion1 » 21 Mar 2019 20:35

Rowsource metodunun dışında başlıkları listboxta gösteremezsiniz.
Kayıt setini sayfaya atarsanız.columnshead yaptınız takdirde veriyi sayfadan alırsanız,kolon başlıkları görülebilir.:cool:
Kullanıcı avatarı
Orion1
Siteye Alışmış
 
Adı Soyadı:Evren Gizlen
Kayıt: 18 Tem 2008 20:51
Meslek: inşaat teknikeri
İleti: 430
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Türkiye

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: ComboBox ile ListBoxta süz

İleti#7)  seheryıldız » 22 Mar 2019 00:23

Evren bey.
İlk mesajımda Rowsourse metodu ile ve AddItem ile sözme yaptığımda zaten asıl istediğim sonuca ulaşmıştım , başlıkda istediğim gibiydi sadece kolon sayısı 17 olduğu için ve listbox bu yöntem ile sadece 10 kolonu desteklediği için bu ikinci yönteme "Tasad" isimli arkadaşın tavsiyesi ile geçtik ama burdaki yöntemde de başlık sorunu oldu. :( Sizin bir kod öneriniz varmı ?

2. Konu da ilk yaptığım modelde listbox a çift tıklayarak yeni açılan bir userform daki textboxlara o satırın bilgilerini tek tek yazdırıyordum ama bu son yöntem ile o bilgilerde gelmez oldu. :shock:
Kullanıcı avatarı
seheryıldız
Siteye Alışmış
 
Kayıt: 15 Nis 2015 08:21
Meslek: yönetici asistanı
Yaş: 31
İleti: 386
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: istanbul/maltepe

Cevap: ComboBox ile ListBoxta süz

İleti#8)  Ali ÖZ » 22 Mar 2019 15:37

Merhaba,
Alternatif olsun bu kodları deneyebilirsiniz.

Kod: Tümünü seç
Private Sub ComboBox1_Change()
Application.ScreenUpdating False
  ListBox1
.ColumnCount 17
  ListBox1
.ColumnHeads True
  ListBox1
.RowSource ""
  
Sheets("Detay").Range("A1:Q" Sheets("Detay").Range("A65536").End(3).Row).AutoFilter Field:=1Criteria1:=ComboBox1.Text
  Set syf 
Sheets.Addsyf.Name "filtre"
  
Sheets("Detay").Range("A1:Q" Sheets("Detay").Range("A65536").End(3).Row).Copy syf.Range("a1")
  
ListBox1.RowSource Sheets("filtre").Range("A2:Q" Sheets("filtre").Range("A65536").End(3).Row).Address
  Sheets
("filtre").Delete
Application
.ScreenUpdating True
End Sub



Kod: Tümünü seç
Private Sub ComboBox1_Change()
  
ListBox1.ColumnCount 17
  ListBox1
.ColumnHeads True
  ListBox1
.RowSource ""
  
Sheets("Detay").Range("A1:Q" Sheets("Detay").Range("A65536").End(3).Row).AutoFilter Field:=1Criteria1:=ComboBox1.Text
   
For Each sat In Sheets("Detay").Range("a2:a" Sheets("Detay").Range("a65536").End(3).Row)
     If 
sat.Rows.Hidden False Then
          satir 
sat.Row
          
Exit For
     
End If
 
Next
 sonsat 
Sheets("Detay").Range("a65536").End(3).Row
 
For Each s In ActiveWorkbook.Names
   
If s.Name "liste" Then
     s
.Delete
   End 
If
 
Next
 ActiveWorkbook
.Names.Add Name:="liste"RefersToR1C1:="=Detay!R1C1:R1C17,Detay!R" satir "C1:R" sonsat "C17"
 
ListBox1.RowSource "liste"
End Sub
Allah bize yeter, O ne güzel vekildir.
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Kullanıcı avatarı
Ali ÖZ
Forum Moderatörü
 
Adı Soyadı:Ali ÖZ
Kayıt: 17 Oca 2013 10:16
Konum: SAKARYA
Meslek: Yazılım
Yaş: 37
İleti: 9729
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Adapazarı/SAKARYA

Cevap: ComboBox ile ListBoxta süz

İleti#9)  seheryıldız » 22 Mar 2019 23:32

Ali bey merhaba.
Maalesef sizin verdiğiniz kodlar filtre yoluyla sayfa üzerinde işlem yapıyor zaten 2. verdiğiniz kodda olmadı.
Benim ilk mesajımdaki kodlar üzerinden bir şeyler yapılamaz mı ?o kodlar zaten istediğim gibi,
sadece listbox 10 sütun değil 17 sütun olması gerekiyor.
Kullanıcı avatarı
seheryıldız
Siteye Alışmış
 
Kayıt: 15 Nis 2015 08:21
Meslek: yönetici asistanı
Yaş: 31
İleti: 386
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: istanbul/maltepe

Cevap: ComboBox ile ListBoxta süz

İleti#10)  Orion1 » 23 Mar 2019 16:05

Verileri diziye alıp oradan direk listboxa alarak 10 sütun sınırını aşabilirsiniz ama kolon başlıkları yine olmaz.
Daha öncede dediğim gibi kolon başlıkları sadece rowsource yöntemi ile olur.
Bunun içinde verileri başka bir sayfaya atıp o sayfadan veri almak lazım.:cool:
Kullanıcı avatarı
Orion1
Siteye Alışmış
 
Adı Soyadı:Evren Gizlen
Kayıt: 18 Tem 2008 20:51
Meslek: inşaat teknikeri
İleti: 430
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Türkiye

Cevap: ComboBox ile ListBoxta süz

İleti#11)  tasad » 25 Mar 2019 11:37

Listview ile yapılmış bir örnek.İşinizi görüyorsa kullanın.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 580
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta


Forum ListBox

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe