TextBox ile Çoklu Filtreleme

admin 23 Haziran 2020 23 Haziran 2020 VIP Dosya
TextBox ile Çoklu Filtreleme isimli bu dosyamızda, bir UserForm nesnesi üzerinde bulunan ListBox nesnesindeki verileri, 3 ayrı kritere göre kolayca ve hızlıca filtreleme yapabilirsiniz.

TextBox ile Çoklu Filtreleme

Üst resimdeki gibi çoklu verilerin olduğu bir listede kısıtlama yapmak isterseniz, 3 tane TextBox ile 3 ana başlıktaki gibi listeyi daraltabilirsiniz.

image-20200623094856-1.png
image-20200623094901-2.png
image-20200623094907-3.png

Bu tür nesnelerle işlem yapanlar için faydalı bir örnektir.

Her gün yayınladığımız ve maksimum 1 dakikalık olan Excel Videolarımızı izlemek için Instagram hesabımızı takip etmek ister misiniz?

BURAYA tıkla ve ExcelDepo Instagram hesabımızı hemen Takip Et

Bu dosyayı indirebilmek için, önce Kayıt olmanız ya da kayıtlı üyemiz iseniz Giriş yapmanız, daha sonra ise VIP Üyelik satın almanız gerekmektedir.
Üstteki alanda, Google Reklamları yerine sizin reklamınızın yayınlanmasını ister misiniz?
Reklam vermek istiyorum
BU DOSYADA KULLANILAN EXCEL ÖZELLİKLERİ:
UserForm - TextBox - ListBox - AutoFilter

Öncelikle kod için elinize sağlık fakat kodta bir sıkıntı var aynı anda 2 textboxu birlikte filtrelemiyor , İç içe for döngüğsüyle yapmaya çalıştım fakat kodta bir takım hatalar meydana geldi , nasıl çözebiliriz

Private Sub TextBox2_Change()
'ListBox1.RowSource = Empty
'ListBox1.Clear
'ListBox1.ColumnCount = 3

Dim isim1 As Object
Dim isim2 As Object
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Database")
Dim liste1 As Integer
Dim liste2 As Integer


Me.listdatabase.RowSource = Empty
Me.listdatabase.Clear
Me.listdatabase.ColumnCount = 8


For Each isim1 In sh.Range("b2:b" & sh.Range("b65536").End(xlUp).Row)

If UCase(LCase(isim1)) Like "*" & UCase(LCase(TextBox2)) & "*" Then
liste1 = Me.listdatabase.ListCount
End If

For Each isim2 In sh.Range("c2:c" & sh.Range("c65536").End(xlUp).Row)
If UCase(LCase(isim2)) Like "*" & UCase(LCase(TextBox3)) & "*" Then
liste2 = Me.listdatabase.ListCount
End If


If liste1 = liste2 Then

listdatabase.AddItem
listdatabase.List(liste1, 0) = isim1.Offset(0, -1)
listdatabase.List(liste1, 1) = isim1
listdatabase.List(liste1, 2) = isim1.Offset(0, 1)
listdatabase.List(liste1, 3) = isim1.Offset(0, 2)
listdatabase.List(liste1, 4) = isim1.Offset(0, 3)
listdatabase.List(liste1, 5) = isim1.Offset(0, 4)
listdatabase.List(liste1, 6) = isim1.Offset(0, 5)
listdatabase.List(liste1, 7) = isim1.Offset(0, 6)

End If


Next isim2

Next isim1



End Sub


Merhaba,

Dosyayı tekrar test ettim, herhangi bir sorun göremedim.
Eğer veriler birbiri ile uyumlu ise 3 ayrı TextBox'u aynı anda desteklemektedir.
Üstteki açıklama kısmında da zaten resimlerden görebilirsiniz.

Excel sorularınız ile ilgili olarak Destek Forumumuzu kullanıyoruz.
Şu anda burada sadece Dosya ve bilgi paylaşımı yapılmaktadır.
Destek forumumuza erişmek için üst linkten Destek seçeneğini kullanabilirsiniz.

İyi çalışmalar



Bir Excel sayfası üzerinde aynı içeriği temsil eden sütunlara ait ilk satırın üzerindeki bir satıra, bu sütunları kapsayacak hücreleri birleştirip başlık ataması yaptığımız olmuştur. Kullandığınız şablonlar veritabanı niteliğinde olmayan form, raporlamalarınıza görsellik katması için bu uygulamayı tavsiye ederim.

Ama veriler sadece veritabanı niteliğinde ise, hücre birleştirmeden kaçınmalısınız. Karşınıza çıkabilecek bazı problemlerin neler olduğuna dair buradaki yazıya göz atabilirsiniz.

Peki, veritabanı olarak kullandığınız bir sayfada, atayacağınız başlığı hücre birleştirme yapmadan ortalayabilir misiniz?

örneğin A2 ve C2 aralığınızda, Sicil, Adı, Soyadı şeklinde 3 sütundan oluşan verileriniz var. Siz A1:C1 aralığına "Personel Bilgileri" şeklinde bir başlık yazıp, bunu hücre birleştirme yapmadan yapacaksınız.
Bunun için:
  1. A1:C1 aralığını seçin.
  2. Farenin sağ tuşuna basın ve Hücreleri Biçimlendir'i seçin.
  3. Metin Hizalama seçeneklerinden, Yatay seçeneğinin altındaki listeyi tıklayın.
  4. Açılan listeden, Seçim Arasında Ortala seçip Tamam'a tıklayın.
Sonuç aşağıdaki gibi olacaktır.



Hücre Birleştirilmedi ama ortalama yapıldı.

Yükleniyor...