• DİKKAT

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

Listbox süzme problemi

  • Konbuyu başlatan Konbuyu başlatan efeksk
  • Başlangıç tarihi Başlangıç tarihi
Katılım
13 Nisan 2008
Mesajlar
205
Excel Vers. ve Dili
Excel 2003
Değerli arkadaşlar. ekte verdiğim örnekte UserFormdaki ListBoxda listelenen malzemeleri bir textbox aracılığı ile süzüyorum. Fakat benim istediğim tam olarak şu....

Örneğin Listedeki malzemelerden Şerit Metre (50MT) isimli malzemeyi aratacağım zaman tam metini yazmak yerine metre yazınca yada şerit yazıncada süzsün.

Bendeki ListBoxda süzme işlemini tam metin yazınca yapıyo. ama benim istediğim verilerdeki metin içinde bir harfe basacağım zaman herhangi bir harf ile listeleyebilmesi. yeterki verinin içinde o harf olssun.. Lütfen yardımcı olun..

Ve eklemeliyim.. büyük küçük harf uyumu şartıda olmazsa çok sevinirim. her iki kalıptada arayabilsin.
 

Ekli dosyalar

bu kodu denermisiniz.

Private Sub TextBox1_Change()
sat = "A" 'sütun no
Set sayfa_adi = Sheets("veri")
Dim i As Integer
Dim j As Integer
Dim aranan1 As String
ListBox1.Clear
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "100;0;0" 'lisbox'taki sütunların genişliği
sat1 = 0
j = Len(TextBox1.Text)
For i = 2 To sayfa_adi.Cells(65536, sat).End(3).Row
aranan1 = LCase(TextBox1.Text)
If sayfa_adi.Cells(i, sat).Value > 0 Then
If TextBox1.Text <> "" Then
deg = 0
For j = 1 To Len(sayfa_adi.Cells(i, sat).Value)
If aranan1 = LCase(Mid(sayfa_adi.Cells(i, sat).Value, j, Len(TextBox1.Text))) Then
deg = 1
End If
Next
If deg = 1 Then
ListBox1.AddItem
ListBox1.List(sat1, 0) = sayfa_adi.Cells(i, sat).Value
ListBox1.List(sat1, 1) = i
sat1 = sat1 + 1
End If
Else
ListBox1.AddItem
ListBox1.List(sat1, 0) = sayfa_adi.Cells(i, sat).Value
ListBox1.List(sat1, 1) = i
sat1 = sat1 + 1
End If
End If
Next
End Sub
 
Pardon abi be ufak bi sorun var. yukarıdaki örnekteki dosyadan elimde üç tane ayrı form var ve hepsi veri sayfasından verileri alıyor. örneğin userform1 veri a1:a - userform2 veri b1:b gibi...

Bunada bi düzeltme yapabilirmisiniz
 
Pardon abi be ufak bi sorun var. yukarıdaki örnekteki dosyadan elimde üç tane ayrı form var ve hepsi veri sayfasından verileri alıyor. örneğin userform1 veri a1:a - userform2 veri b1:b gibi...

Bunada bi düzeltme yapabilirmisiniz

2. nolu mesajı yeniden düzenledim kırmızı yerleri değiştirerek kullanabilirsiniz.
 
Sayın Halit3
Emeğinize sağlık
Yaptığınız süzme işi Listbox taki 9 kolon için nasıl düzenlenmeli?

ListBox1.ColumnCount = 9
ListBox1.ColumnWidths = "24.95 pt;42 pt;15 pt;105 pt;49 pt;49 pt;49 pt;49 pt;49 pt" 'lisbox'taki sütunların genişliği


4. kolona göre süzme yapmamız gerekiyor. Diğer kolonlar 4. kolonun durumuna göre sıralanacak.

4. kolon VERİLER sayfasının "O" sutunundan veri alıyor.

Listbox1'in veri alma kodları aşağıdaki şekildedir.
sat1 = Sheets("VERİLER").Range("K65536").End(3).Row
For i = 2 To sat1
ListBox1.AddItem
ListBox1.List(a, 0) = i - 1
ListBox1.List(a, 1) = Sheets("VERİLER").Cells(i, "M").Value
ListBox1.List(a, 2) = Sheets("VERİLER").Cells(i, "N").Value
ListBox1.List(a, 3) = Sheets("VERİLER").Cells(i, "O").Value
ListBox1.List(a, 4) = Sheets("VERİLER").Cells(i, "AV").Value
ListBox1.List(a, 5) = Sheets("VERİLER").Cells(i, "AW").Value
ListBox1.List(a, 6) = Sheets("VERİLER").Cells(i, "AX").Value
ListBox1.List(a, 7) = Sheets("VERİLER").Cells(i, "AY").Value
ListBox1.List(a, 8) = Sheets("VERİLER").Cells(i, "AZ").Value
a = a + 1
Next i


Saygılarımla
 
Sayın Halit3
Emeğinize sağlık
Yaptığınız süzme işi Listbox taki 9 kolon için nasıl düzenlenmeli?

ListBox1.ColumnCount = 9
ListBox1.ColumnWidths = "24.95 pt;42 pt;15 pt;105 pt;49 pt;49 pt;49 pt;49 pt;49 pt" 'lisbox'taki sütunların genişliği


4. kolona göre süzme yapmamız gerekiyor. Diğer kolonlar 4. kolonun durumuna göre sıralanacak.

4. kolon VERİLER sayfasının "O" sutunundan veri alıyor.

Listbox1'in veri alma kodları aşağıdaki şekildedir.
sat1 = Sheets("VERİLER").Range("K65536").End(3).Row
For i = 2 To sat1
ListBox1.AddItem
ListBox1.List(a, 0) = i - 1
ListBox1.List(a, 1) = Sheets("VERİLER").Cells(i, "M").Value
ListBox1.List(a, 2) = Sheets("VERİLER").Cells(i, "N").Value
ListBox1.List(a, 3) = Sheets("VERİLER").Cells(i, "O").Value
ListBox1.List(a, 4) = Sheets("VERİLER").Cells(i, "AV").Value
ListBox1.List(a, 5) = Sheets("VERİLER").Cells(i, "AW").Value
ListBox1.List(a, 6) = Sheets("VERİLER").Cells(i, "AX").Value
ListBox1.List(a, 7) = Sheets("VERİLER").Cells(i, "AY").Value
ListBox1.List(a, 8) = Sheets("VERİLER").Cells(i, "AZ").Value
a = a + 1
Next i


Saygılarımla
kod

Kod:
Private Sub TextBox1_Change()
sat = "A" 'sütun no
Set sayfa_adi = Sheets("VERİLER")
Dim i As Integer
Dim j As Integer
Dim aranan1 As String
ListBox1.Clear
ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "24.95 pt;42 pt;15 pt;105 pt;49 pt;49 pt;49 pt;49 pt;49 pt;0 pt" 'lisbox'taki sütunların genişliği
sat1 = 0
j = Len(TextBox1.Text)
For i = 2 To sayfa_adi.Cells(65536, sat).End(3).Row
aranan1 = LCase(TextBox1.Text)
If sayfa_adi.Cells(i, sat).Value > 0 Then
If TextBox1.Text <> "" Then
deg = 0
For j = 1 To Len(sayfa_adi.Cells(i, sat).Value)
If aranan1 = LCase(Mid(sayfa_adi.Cells(i, sat).Value, j, Len(TextBox1.Text))) Then
deg = 1
End If
Next
If deg = 1 Then
ListBox1.AddItem
ListBox1.List(sat1, 0) = i - 1
ListBox1.List(sat1, 1) = sayfa_adi.Cells(i, "M").Value
ListBox1.List(sat1, 2) = sayfa_adi.Cells(i, "N").Value
ListBox1.List(sat1, 3) = sayfa_adi.Cells(i, "O").Value
ListBox1.List(sat1, 4) = sayfa_adi.Cells(i, "AV").Value
ListBox1.List(sat1, 5) = sayfa_adi.Cells(i, "AW").Value
ListBox1.List(sat1, 6) = sayfa_adi.Cells(i, "AX").Value
ListBox1.List(sat1, 7) = sayfa_adi.Cells(i, "AY").Value
ListBox1.List(sat1, 8) = sayfa_adi.Cells(i, "AZ").Value
ListBox1.List(sat1, 9) = i
sat1 = sat1 + 1
End If
Else
ListBox1.AddItem
ListBox1.List(sat1, 0) = i - 1
ListBox1.List(sat1, 1) = sayfa_adi.Cells(i, "M").Value
ListBox1.List(sat1, 2) = sayfa_adi.Cells(i, "N").Value
ListBox1.List(sat1, 3) = sayfa_adi.Cells(i, "O").Value
ListBox1.List(sat1, 4) = sayfa_adi.Cells(i, "AV").Value
ListBox1.List(sat1, 5) = sayfa_adi.Cells(i, "AW").Value
ListBox1.List(sat1, 6) = sayfa_adi.Cells(i, "AX").Value
ListBox1.List(sat1, 7) = sayfa_adi.Cells(i, "AY").Value
ListBox1.List(sat1, 8) = sayfa_adi.Cells(i, "AZ").Value
ListBox1.List(sat1, 9) = i
sat1 = sat1 + 1
End If
End If
Next
End Sub

not kod A sutünuna göre süzme yapıyor siz kodun bu bölümünü kendinize göre uyarlayın

sat = "A" 'sütun no

Not: bu uygulama 10 sutündan fazla olmaz onuncu sutünuda ben ekledim satır numarası için
 
Merhabalar
kodlar texbox1' e göre verileri ilgili sayfadan süzerek listbox'alıyor. Peki bu aşamadan sonra bir kez daha süzme işlemi yapmak istersek örneğin texbox2 ' ye görede 2. aşama süzme yapmak istersek kodlar nasıl olacak

Yardımlarınız için teşekkürler
 
Geri
Üst