Formda textbox ta adısoyadını listboxta filitreliyorum fakat çok kasıyor.yardımcı olurmusunuz

Katılım
17 Eylül 2010
Mesajlar
1
Excel Vers. ve Dili
2007 tr
Private Sub txt_AdıSoyadı_Change()

Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
sonsatır = Sheets("Müsteri").Range("A10000").End(xlUp).row 'Form aktif olduğunda Listede A sütununda en sona git ve yukarı çıkıp en son dolu satıra gel...
If cmb_Mahalle = "" Or txt_Adres = "" Then 'mahalle ve adres boş ise....
Sheets("Gecici_M").Range("A2:G10000").ClearContents 'Gecici listeyi temizler....
For i = 2 To sonsatır 'i değişkeni 2 den başlayıp sonsatır arasında ise.....

If Sheets("Müsteri").Range("B" & i) Like "*" & txt_AdıSoyadı & "*" Then
sonsatırGecici = Sheets("Gecici_M").Range("A10000").End(xlUp).row + 1 'gecici listede son dolu hücreyi bul ve +1 satır altına geç....

Sheets("Gecici_M").Range("A" & sonsatırGecici) = Sheets("Müsteri").Range("A" & i)
Sheets("Gecici_M").Range("B" & sonsatırGecici) = Sheets("Müsteri").Range("B" & i)
Sheets("Gecici_M").Range("C" & sonsatırGecici) = Sheets("Müsteri").Range("C" & i)
Sheets("Gecici_M").Range("D" & sonsatırGecici) = Sheets("Müsteri").Range("D" & i)
Sheets("Gecici_M").Range("E" & sonsatırGecici) = Sheets("Müsteri").Range("E" & i)
Sheets("Gecici_M").Range("F" & sonsatırGecici) = Sheets("Müsteri").Range("F" & i)
Sheets("Gecici_M").Range("G" & sonsatırGecici) = Sheets("Müsteri").Range("G" & i)
lstb_MEkle.RowSource = "Gecici_M!A2:G" & sonsatır 'Listboxun seçili satırını Listedeki son satıra eşitle...
End If
Next
txt_AdıSoyadı = Application.Proper(txt_AdıSoyadı.Value) 'Değiştiğinde İlk harfi büyük diğerleri küçük olsun....
End If
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
750
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba deneyiniz. AI üründür; çalışmazsa sileriz.

C#:
Private Sub txt_AdıSoyadı_Change()
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim sonSatır As Long
sonSatır = Sheets("Müsteri").Range("A10000").End(xlUp).Row

If cmb_Mahalle = "" Or txt_Adres = "" Then
    Dim geciciListe() As Variant
    ReDim geciciListe(1 To sonSatır, 1 To 7)
    
    Dim i As Long
    Dim j As Long
    j = 1
    
    For i = 2 To sonSatır
        If Sheets("Müsteri").Range("B" & i) Like "*" & txt_AdıSoyadı & "*" Then
            geciciListe(j, 1) = Sheets("Müsteri").Range("A" & i)
            geciciListe(j, 2) = Sheets("Müsteri").Range("B" & i)
            geciciListe(j, 3) = Sheets("Müsteri").Range("C" & i)
            geciciListe(j, 4) = Sheets("Müsteri").Range("D" & i)
            geciciListe(j, 5) = Sheets("Müsteri").Range("E" & i)
            geciciListe(j, 6) = Sheets("Müsteri").Range("F" & i)
            geciciListe(j, 7) = Sheets("Müsteri").Range("G" & i)
            j = j + 1
        End If
    Next i
    
    Sheets("Gecici_M").Range("A2").Resize(j - 1, 7).Value = geciciListe
    lstb_MEkle.RowSource = "Gecici_M!A2:G" & j - 1
End If

txt_AdıSoyadı = Application.Proper(txt_AdıSoyadı.Value)

Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
 
Üst