- Katılım
- 13 Şubat 2011
- Mesajlar
- 1,162
- Excel Vers. ve Dili
- Microsoft Office Professional Plus 2013 Türkçe
İki sütunlu verileri süzerek arama yapmak için A2 hücresinin change olayı ile B2 hücresine yerleştirdiğim textbox un change olayına aynı kodları yazdım.
Textbox a yazdığım her karakter sonrasında süzme olayı gerçekleşiyor. Oysa A2 hücresine ne yazarsanız yazın, enter yapana kadar hiç bir olay olmuyor.
Ben hücreye girilen her karakter sonrasında (yazma işlemi devam ederken) tıpkı textbox change olayında olduğu gibi süzme işleminin harekete geçmesini, her karakterle birlikte süzme işleminde ki değişikliğin anlık olmasını istiyorum.
Hücre change olayının textbox change olayı ile tıpatıp aynı şekilde çalışması mümkün müdür?
Durumun daha iyi anlaşılması için örnek dosya da ekliyorum.
Mevcut kodlar şöyle:
Hücre için
Textbox change olayı kodları:
Önceden teşekkürler, saygılar..
Textbox a yazdığım her karakter sonrasında süzme olayı gerçekleşiyor. Oysa A2 hücresine ne yazarsanız yazın, enter yapana kadar hiç bir olay olmuyor.
Ben hücreye girilen her karakter sonrasında (yazma işlemi devam ederken) tıpkı textbox change olayında olduğu gibi süzme işleminin harekete geçmesini, her karakterle birlikte süzme işleminde ki değişikliğin anlık olmasını istiyorum.
Hücre change olayının textbox change olayı ile tıpatıp aynı şekilde çalışması mümkün müdür?
Durumun daha iyi anlaşılması için örnek dosya da ekliyorum.
Mevcut kodlar şöyle:
Hücre için
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Worksheet, aranan As String, ss As Integer
Set sh = ThisWorkbook.ActiveSheet
If Intersect(Target, sh.Range("A2")) Is Nothing Then Exit Sub
ss = sh.Range("A:B").Find("*", , , , xlByRows, xlPrevious).Row
aranan = Target.Value
Application.EnableEvents = False
Application.ScreenUpdating = False
If sh.Range("A2") = "" Then
sh.AutoFilterMode = False
Else
sh.Range("A3:B" & ss).AutoFilter field:=2, Criteria1:="*" & aranan & "*"
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Kod:
Private Sub TextBox1_Change()
Dim sh As Worksheet, aranan As String, ss As Integer
Set sh = ThisWorkbook.ActiveSheet
ss = sh.Range("A:B").Find("*", , , , xlByRows, xlPrevious).Row
aranan = TextBox1.Text
Application.ScreenUpdating = False
If TextBox1.Text = "" Then
sh.AutoFilterMode = False
Else
sh.Range("A3:B" & ss).AutoFilter field:=2, Criteria1:="*" & aranan & "*"
End If
Application.ScreenUpdating = True
End Sub
Ekli dosyalar
-
41.5 KB Görüntüleme: 13