• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

özel süzme

  • Konbuyu başlatan Konbuyu başlatan chro.x
  • Başlangıç tarihi Başlangıç tarihi
Katılım
15 Ağustos 2012
Mesajlar
28
Excel Vers. ve Dili
2010 VBA
Merhaba arkadaşlar ;

Konuyu doğru yere açtım mı bilmemekle beraber sizden yardım istiyeceğim konuyuda tam bir arama yapamadım . Eğer hazır varsa beni yönlendirebilirsiniz.
Fakat makrolarıbilmedim için yine yardımınıza ihtiyacım olacak . Sadece sorunumun çözümü değil konuyu öğrenerek gitmek istiyorum. İmkanı olup yardımcı olacaklara şimdiden teşekkür ediyorum.
Sorum ise şu süzme yapmak için bir box olsa ve o boxta arama yapsam ve arama motorlarındaki gibi her yazdığımda sonuçları anında çıkartsın sildiğimde tüm veriler sayfada görünsün .
 
Merhaba,
Ekli dosyayı inceler misiniz?
 

Ekli dosyalar

Son düzenleme:
Merhaba,
Ekli dosyayı inceler misiniz?

Sn.dEdE,
Elinize sağlık, çalışmanız çok faydalı.
Bir sorum var:
Kod:
Private Sub TextBox1_Change()
On Error Resume Next
    Bulunacak = TextBox1.Value
    Set Aranan = Range("B:C").Find(What:=Bulunacak)
    Application.Goto Reference:=Range(Aranan.Address), Scroll:=False
    Selection.AutoFilter Field:=1, Criteria1:="*" & TextBox1.Value & "*"
    If Bulunacak = "" Then Selection.AutoFilter Field:=1
End Sub

Sayfa kodunuzda Set Aranan = Range("B:C") olmasına rağmen, A kolonundaki verileri süzüyor.
Örneğin; C kolonuna veriler girip arama yapılınca da yine A kolonuna göre süzüyor.
Kod mantığınızı izah ederseniz; C kolonu veya başka bir kolonu nasıl süzebiliriz.

İlginiz için şimdiden teşekkür ederim.
 
merhaba
yeni üyeyim bnde doğru konu başlıgını bulamadım ama öğrenmek istedigim konu ile ilgili yadımlarınızı rica ediyorum şöyle ki; excelde fiyat karşılaştırması yada mukayesesi tablosu nasıl oluşturabilirim. Konu şöyle birden fazla (yaklaşık 50 kadar) ürün var ve 10 kadar marka bulunmakta bu markaların her birinde o ürüne ait en düşük fiyatı x ürünü için hang, marka verdiğini kolay bir yolla nasıl bulabilirim acaba excelde bunu nasıl yapabilirim yada hangi kaynakları inceleyrek bu tabloyu kendi başıma oluşturabilirim iş yerinde yeniyim bu bilgiye ulaşıp yapabilir isem çok iyi olacak. yardımlarınızı bekler şimdiden teşekkür ederim..
 
Sayın turist,
Uyarı için teşekkürler.
Kodları daha önce yaptığım bir çalışmadan almıştım. Sütun adını değiştirmeyi unutmuşum. Set Aranan = Range("A:A") olacak.
Sayfa kodunuzda Set Aranan = Range("B:C") olmasına rağmen, A kolonundaki verileri süzüyor. Örneğin; C kolonuna veriler girip arama yapılınca da yine A kolonuna göre süzüyor.
Bunun nedeni On Error Resume Next satırı. Bu satırı kaldırırsanız kodun hata verdiğini göreceksiniz.
C kolonu veya başka bir kolonu nasıl süzebiliriz.
Set Aranan = Range("A:A") satırındaki kolon adını değiştirerek süzebilirsiniz.
Uyarınız doğrultusunda yukarıdaki kodu ve dosyayı güncelledim.
 
Sayın firat35,
Forumumuza hoşgeldiniz.
Yeni bir başlık açarak bu başlığa örnek dosyanızı eklerseniz yanıt alabilirsiniz.
Örnek dosyayı;
Her firma için bir sayfa oluşturup, o sayfaya firmanın ürünlerini ve fiyatlarını yazabilirsiniz.
Ya da bir sayfada her firma için iki sütun ayırıp;ürün ve fiyatları yazabilirsiniz. Farklı çözümlerde üretilebilir. Hemen aklıma gelen bunlar.
Hoşçakalın.
 
Sayın turist,
Uyarı için teşekkürler.
Kodları daha önce yaptığım bir çalışmadan almıştım. Sütun adını değiştirmeyi unutmuşum. Set Aranan = Range("A:A") olacak.

Bunun nedeni On Error Resume Next satırı. Bu satırı kaldırırsanız kodun hata verdiğini göreceksiniz. Set Aranan = Range("A:A") satırındaki kolon adını değiştirerek süzebilirsiniz.
Uyarınız doğrultusunda yukarıdaki kodu ve dosyayı güncelledim.

Teşekkürler.
 
Tşk

Merhaba,
Ekli dosyayı inceler misiniz?

İlginiz için çok tşk ederim. Aradığım şey aynen buydu

Öğrenmek adına bir şey soracağım size. Bunu A* ( A ile başlayan ) *A ( A ile biten ) şeklinde düzenlemek mümkün müdür.
 
Öğrenmek adına bir şey soracağım size. Bunu A* ( A ile başlayan ) *A ( A ile biten ) şeklinde düzenlemek mümkün müdür.
Merhaba,
Yukarıda eklediğim dosyanın B ve C sütunlarına iki adet textbox ekledikten sonra, aşağıdaki kodları kullanarak istediğinizi yapabilirsiniz.

Kod:
Private Sub TextBox2_Change()' ...ile başlar
On Error Resume Next
    Bulunacak2 = TextBox2.Value
    Set Aranan = Range("B:B").Find(Bulunacak2)
    Application.Goto Reference:=Range(Aranan.Address)
    Selection.AutoFilter Field:=2, Criteria1:= Bulunacak2 & "*"
    If Bulunacak2 = "" Then Selection.AutoFilter Field:=2
End Sub

Private Sub TextBox3_Change()' ...ile biter
On Error Resume Next
    Bulunacak3 = TextBox3.Value
    Set Aranan = Range("C:C").Find(Bulunacak3)
    Application.Goto Reference:=Range(Aranan.Address)
    Selection.AutoFilter Field:=3, Criteria1:="*" &  Bulunacak3
    If Bulunacak3 = "" Then Selection.AutoFilter Field:=3
End Sub
 
Çok teşekkür ediyorum. İstediğimden fazlası var burada.
Visiual basic bilmediğim için yardımlarınızı istedim. Fakat programlama mantığını azda olsa biliyorum. Ricam şu ki kodları açıklama imkanınız olursa sevinirim.

Private Sub (?) TextBox1_Change() (?)
On Error Resume Next (?)
Bulunacak = TextBox1.Value (?)
Set (?) Aranan = Range("B:C").Find(What:=Bulunacak) (?)
Application.Goto Reference:=Range(Aranan.Address), Scroll:=False (?)
Selection.AutoFilter Field:=1, Criteria1:="*" & TextBox1.Value & "*" (?)
If Bulunacak = "" Then Selection.AutoFilter Field:=1 (?)
End Sub (?)
 
Merhaba,
Private Sub (Sayfanın koduna yazılan özel kod) TextBox1_Change() (TextBox1 her değiştiğinde)
On Error Resume Next (Hata olursa gözardı et)
Bulunacak = TextBox1.Value (TextBox1in değerini değişkene atadık-Uzun uzun yazmayı engelledik.)
Set (İlgili aralıkta yapılan arama sonucunu bir değişkene atadık) Aranan = Range("B:C").Find(What:=Bulunacak) (Arama işlemini yaptırdık)
Application.Goto Reference:=Range(Aranan.Address), Scroll:=False (Bulunan adrese gittik)
Selection.AutoFilter Field:=1, Criteria1:="*" & TextBox1.Value & "*" (otomatik filitre uygulattık. Textbox1 deki herhangibir karakteregöre )
If Bulunacak = "" Then Selection.AutoFilter Field:=1 (Textbox1 boş ise otomatık filitreyi kaldırdık)
End Sub (Prosedürü sonlandırdık.)

Açıklamak kod yazmaktan zormuş. :)
Daha sonra eklediğim kodlarda bazı sadeleştirmeler yaptım. Onları incelerseniz farkı görürsünüz.
Buradaki Aranan = Range("B:C"). B:C yerine A:A yazılacak. Açıklaması yukardaki mesajlarda var.
Hoşçakalın.
 
Düzelttiğiniz mesajı gördüm ama buraya eklerken ilk halini yazmışım . Sizi de çok yordum İlginiz için çok teşekkür ederim. Bu şekilde bende bir yerden başlamaya çalışacağım artık

Bu forumda teşekkür butonu yok mu ben mi fark edemedim ?
 
Geri
Üst