Skip to main content

AccessTr.neT


Listboxda Sayfa İsimlerini Filtreleme

Listboxda Sayfa İsimlerini Filtreleme

Çözüldü #1
Merhaba Arkadaşlar.
Eklediğim Excel uygulamasında Feraz ve Berduş Hocalarımın yazdığı kodlarla ComboBox1 ve girdiğim ilk har ile ListBox1 kişileri filtreliyordum.
ComboBox1 silip yerine TextBox1 ekledim ve TextBox1 e girdiğim harfe göre değil, TextBox1e girdiğim kelime ile baştan sona kadar arama yapsın. ListBox1 de filtreleme yapsın.

Bu konuda yardımlarınıza ihtiyacım var. Saygılarımla.
.rar Per-Tak.rar (Dosya Boyutu: 296,79 KB | İndirme Sayısı: 4)
Cevapla
#2
Bir önceki konunuzda @feraz beyin 11. mesajindaki  kod işinize yaramıyor mu?

Ayrıca eklediğiniz örnekte sorgu kullanılan çalışmanın kodu var ama eklediğiniz calismada ilgili kodun ihtiyaci olan TmpSilme sayfası eklenmemiş. Hangi yapıyı kullanmak istiyorsunuz? O konudaki Örnek çalışmaları indirip inceleyerek hangisinin size uygun olduğuna karar vermelisiniz.
Son Düzenleme: 10/05/2020, 21:46, Düzenleyen: berduş.
Cevapla
#3
Teşekkürler Hocam ellerinize sağlık. 
Hocam @feraz Hocamın 11. mesajındaki kodu uyguladım sorunum hal oldu.

@feraz Hocamı da kutluyorum destek elemanı olduğu için. 

Hocam konuyu taşıyabilirsiniz. Saygılarımla.
Cevapla
#4
dilerim aşağıdaki kodlar işinize yarar
modül başlangıcına eklenecek kodlar

Visual Basic Code
Option Compare Text
Const Ekleme As String = "|ŞABLON|Sayfa1|liste|"

UserForm_Initialize kodu

Visual Basic Code
Private Sub UserForm_Initialize()
Dim syf As Worksheet, k As Byte

Me.ListBox1.Clear

    'ListBox veri ekle'
For Each syf In Worksheets
    If InStr(1, Ekleme, "|" & syf.Name & "|", 1) = 0 Then ListBox1.AddItem syf.Name
Next syf
listeSirala
End Sub

TextBox1_Change kodu

Visual Basic Code
Private Sub TextBox1_Change()
Dim syf As Worksheet, k As Byte
    Me.ListBox1.Clear
For Each syf In Worksheets
    'ListBox daki listeyi görüntüleme'
'    If InStr(1, Ekleme, "|" & syf.Name & "|", 1) = 0 And InStr(1, syf.Name, Me.TextBox1.Text) > 0 Then ListBox1.AddItem syf.Name
    If InStr(1, Ekleme, "|" & syf.Name & "|", 1) = 0 And syf.Name Like "*" & Me.TextBox1.Text & "*" Then ListBox1.AddItem syf.Name
Next syf
listeSirala
End Sub

Sıralama fonksiyonu

Visual Basic Code
Sub listeSirala()
Dim vaItems As Variant
    Dim i As Long, j As Long
    Dim vTemp As Variant
    
    'Put the items in a variant array
    vaItems = Me.ListBox1.List
   
    'Steal code from John Walkenbach’s Excel Power Programming
    'with VBA to sort the array
    For i = LBound(vaItems, 1) To UBound(vaItems, 1) - 1
        For j = i + 1 To UBound(vaItems, 1)
            If vaItems(i, 0) > vaItems(j, 0) Then
                vTemp = vaItems(i, 0)
                vaItems(i, 0) = vaItems(j, 0)
                vaItems(j, 0) = vTemp
            End If
        Next j
    Next i
   
    'Clear the listbox
    Me.ListBox1.Clear
   
    'Add the sorted array back to the listbox
    For i = LBound(vaItems, 1) To UBound(vaItems, 1)
        Me.ListBox1.AddItem vaItems(i, 0)
    Next i
End Sub

Cevapla
#5
Çok Teşekkürler Hocam ellerinize sağlık. 

Hocam konuyu taşıyabilirsiniz. Saygılarımla.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da