textbox süzme işleminde kod açıklaması

Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
Sn dostlar textbox süzme ile ilgili değişik birçok çalışma indirdim ve inceledim.tabi kodlar hakkında fazla bilgili değilim ve bu kodu en azından biraz anlayabilmek istiyorum.ekte örneği verdim gerçi ama (oda siteden alıntıdır.yapanın emeğine sağlık) burayada ayrıca açıklayayım .

Private Sub TextBox1_Change()
On Error Resume Next
NO = TextBox1.Value
Set FC2 = Range("A7:J65000").Find(What:=NO)
Application.Goto Reference:=Range(FC2.Address), _
Scroll:=False
Selection.AutoFilter Field:=1, Criteria1:=TextBox1.Value
If NO = "" Then
Selection.AutoFilter Field:=1
End If
End Sub

örnek kod bu ve veriler A4 hücresinden başlamasına rağmen range A7 .
bunu anlamadığım içinde başka bir sayfada kullanmak çok zor oluyor.tabi eğer koddaki anlamadığımı düşündüğüm tek yer bu değil ama süzmenin yapılacağı alanı sanırım bu belirliyor.bana bunu açıklama imkanınız olursa memnun olurum saygılarımla
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,563
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Koddaki 7 yazan yerleri 4 olarak değiştirmeniz gerekmektedir. Aşağıdaki şekilde değiştirin. O satırdaki amaç arama kutusuna yazdığınız veriyi ilgili sütunda varsa bulur ve seçili hale getirir.

Kod:
Set FC2 = Range("[B][COLOR=red]B4:B65536[/COLOR][/B]").Find(What:=METİN1)
Application.Goto Reference:=Range(FC2.Address), _
   Scroll:=False
Ayrıca süzmenin yapılacağı alanı aşağıdaki satırdaki kırmızı renkli bölüm ifade etmektedir. Buradaki 2 değeri B sütununu ifade etmektedir.

Kod:
Selection.AutoFilter [COLOR=red]Field:=2[/COLOR], Criteria1:="*" & TextBox2.Value & "*"
Başka sayfalara uyarlamak içinse oluşturacağınız süzme kutucuklarının Change olayına aşağıdaki kodu uygulayıp kırmızı renkli kısımları kendi sayfanızdaki bilgilere göre değiştirmeniz yeterli olacaktır.

Kod:
Private Sub TextBox[B][COLOR=red]1[/COLOR][/B]_Change()
On Error Resume Next
NO = TextBox[B][COLOR=red]1[/COLOR][/B].Value
Set FC2 = Range("[COLOR=red][B]A4:[COLOR=blue]J[/COLOR]65000[/B][/COLOR]").Find(What:=NO)
Application.Goto Reference:=Range(FC2.Address), _
   Scroll:=False
Selection.AutoFilter Field:=[B][COLOR=red]1[/COLOR][/B], Criteria1:=TextBox[B][COLOR=red]1[/COLOR][/B].Value
If NO = "" Then
Selection.AutoFilter Field:=[COLOR=red][B]1[/B][/COLOR]
End If
End Sub
Ayrıca kullanmış olduğunuz kodda J yazan kısımlarıda (mavi renkli kısım) başlama harfi neyse ona göre düzeltmeniz gerekmektedir. Yani A4 ile başlıyorsa A65536 ile bitmelidir.
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
ilginize ve açıklamanıza teşekkür ederim.saygılarımla
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
Sn Korhan hocam sanırım bir yanlışi anlama olmuş.Sizin düzelttiğiniz gibi yapıldığında bu kod sadece verinin olduğu hücreyi seçiyor.benim gönderdiğimde ise kod istenen verinin bulunduğu bütün hücreleri süzüp sadece onları gösteriyordu.dolayısı ile ben bu kodları değiştirdiğimde süzme işlemi yapamaz oluyorum.benim sorunum veriler 4.satırdan başladığı halde neden a7:j65000 aralığı verilmesiydi.çünki örneğin benim dosyamda veriler a11 den başladığında ben bu süzme kodunu nasıl uyarlayacağımdı.saygılarımla
 

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
Sn Korhan hocam sanırım bir yanlışi anlama olmuş.Sizin düzelttiğiniz gibi yapıldığında bu kod sadece verinin olduğu hücreyi seçiyor.benim gönderdiğimde ise kod istenen verinin bulunduğu bütün hücreleri süzüp sadece onları gösteriyordu.dolayısı ile ben bu kodları değiştirdiğimde süzme işlemi yapamaz oluyorum.benim sorunum veriler 4.satırdan başladığı halde neden a7:j65000 aralığı verilmesiydi.çünki örneğin benim dosyamda veriler a11 den başladığında ben bu süzme kodunu nasıl uyarlayacağımdı.saygılarımla
Ekediğiniz dosya bana ait.

Oradaki a7, a4 olması gerekir. Orada da (yani dosyayı eklediğim yerde) sonra yazdığımı hatırlıyorum.

Eğer verileriniz A11'den başlıyorsa kodda Range("A7:J65000"). kısmını Range("A11:J65000"). yapın.

.
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
sn yurttaş kusura bakmayın kimden aldığımı hatırlamadığım için isim verememiştim ama alıntı olduğunu belirtmiştim.emeğinize sağlık birçok yerde kullandım ama siz aynı satıra birde otomatik filtre uygulamışsınız sanırım.sorun aslında ben o alana kendi veri hücremi yazdığımda kodu çalıştıramamam.sizin çalışmanızdada veriler aslında A4 hücresinden başlıyor ama koddaki alanınız A7 ve süzme fonksiyonuda çok güzel çalışıyor.ben sizin dosyanızdada denedim a4 yapaınca çalışmıyor.yada oto filtreyi kaldırıncada çalıştıramadım.bilmediğimiz (çok şey varda) bu konuda bir püf noktasımı var acaba .Yardımcı olursanız sevinirim.(internet problemi nedeniyle sıkça kopuyorum.başlıkları zamanında takip edemiyorum.Cevaplarım o nedenle geç kalabiliyor.)saygılarımla
 
Üst