• DİKKAT

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

Tarihe Göre Hızlı Arama

yerbakili

Destek Ekibi
Destek Ekibi
Katılım
12 Mayıs 2009
Mesajlar
174
Excel Vers. ve Dili
Office 2003
Merhaba,

Yapmış olduğum çalışmada iki adet hızlı arama text kutusu bulunmakta. 1.si isim olarak hızlı arama yapmakta. Herhangi bir sıkıntı yok. Ancak 2. text kutusunda sarı alan ile belirlediğim alanda tarih araması yaptırmak istiyorum. Mesela, 2. text kutusuna 08.05.2012 yazdığımda 08.05.2012 tarihini içeren tüm kayıtların o ekranda kalmasını sağlamak istiyorum. Yazılı kodlarda ne tarz bir değişiklik yapmam gerekiyor acaba?
 

Ekli dosyalar

Merhaba,

Tarih içeren 3 sütununuz var. Bu sebeple K1 hücresini yardımcı hücre olarak kullandım. Bu hücreye 1-2-3 değerlerinden birisini yazınız. Bu değerler ilgili haftayı temsil etmektedir.

Aşağıdaki kod ile tarih süzmesi yapabilirsiniz. Textbox2 nesnesine 10 karakter uzunluğunda tarih girdiğinizde süzme gerçeklecektir. (gg-aa-yyyy)

Kod:
Private Sub TextBox2_Change()
    On Error Resume Next
    
    Select Case Range("K1")
        Case 1: X = 2
        Case 2: X = 3
        Case 3: X = 4
    End Select
    
    If Len(TextBox2) = 10 Then
        METİN2 = TextBox2.Value
        Set FC2 = Range("b2:e").Find(What:=METİN1)
        Application.Goto Reference:=Range(FC2.Address), Scroll:=False
        Selection.AutoFilter Field:=X, Criteria1:=CDate(TextBox2.Value)
    Else
        Selection.AutoFilter Field:=X
    End If
End Sub
 
Yardımınız için teşekkür ederim. Ancak şöyle bir durum da var. Hafta sütunları 3 ile sınırlı kalmayacak. Bunu ilk mesajımda belirtmediğim için özür dilerim. Her hafta için yeni bir sütun açılacak. Bu da yıl sonuna kadar gidecek. Yani bir yıl için toplam 52 sütunum olacak. Yaklaşık da 900 tane ad soyad satırım olacak. Buna göre bir düzenleme yapamaz mıyız?
 
Merhaba,

Bu durumda tüm kodlarınızı silip aşağıdaki kodları uygulayın.

Tarih kutusuna çift tıkladığınızda size tarihle ilgili sütun sorulacak. Sütun değerini girdikten sonra dilediğiniz tarihi yazıp süzme yapabilirsiniz.

Kod:
Dim Hafta
 
Private Sub TextBox1_Change()
    On Error Resume Next
    METİN1 = TextBox1.Value
    Set FC2 = Range("A2:A").Find(What:=METİN1)
    Application.Goto Reference:=Range(FC2.Address), Scroll:=False
    Selection.AutoFilter Field:=1, Criteria1:="*" & TextBox1.Value & "*"
    If METİN1 = "" Then
    Selection.AutoFilter Field:=1
    End If
End Sub
 
Private Sub TextBox2_Change()
    On Error Resume Next
    
    If Len(TextBox2) = 10 Then
        METİN2 = TextBox2.Value
        Set FC2 = Range("b2:e").Find(What:=METİN1)
        Application.Goto Reference:=Range(FC2.Address), Scroll:=False
        Selection.AutoFilter Field:=Hafta, Criteria1:=CDate(TextBox2.Value)
    Else
        Selection.AutoFilter Field:=Hafta
    End If
End Sub
 
Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Hafta = Application.InputBox("Süzmek istediğiniz hafta değerini girin !")
    If Hafta = "" Or Hafta = False Then
        Hafta = 2
    Else
        Hafta = Hafta + 1
    End If
End Sub
 
Yardımınız için teşekkür ederim. Şöyle bir durum var. Bu tabloyu ben kullanacak olsam sıkıntı yok. Ancak tabloyu, başka bir birim kullanacak ve bu birimde çalışan arkadaş hem yoğun olacak hem de konu hakkında fazla bir bilgiye sahip değil. İstiyorumki tek yapması ya isme göre arama ya da bir tarih girip o tarih ile kaydı yapılan kişileri göstersin istiyorum. Ama sanırım çoklu alanda süzme yapamıyoruz.

Çok teşekkürler ilginize.
 
Merhaba,

Çoklu alanda süzme yapabilirsiniz. Fakat süzme işleminde hangi sütunu süzmek istediğinizi belirtmek durumundasınız. Bu sebeple hızlı ve kullanışlı olması açısından nesnenin çift tıklama olayını kullandım. İsterseniz sütun seçme işlemini bir hücreyede bağlayabiliriz.
 
Geri
Üst