• DİKKAT

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

Veri süzme

Katılım
1 Ekim 2017
Mesajlar
694
Excel Vers. ve Dili
2019 türkçe
İyi sabahla, iyi çalışmalar. Ekteki puantaj dosyamda B7, c7 ve d7 hücrelerine alttaki personel bilgilerini yani t.c numarası ve ad soyad bilgilerini girdiğimde bilgisini girdiğim personel ilk sıraya gelmesi gerekiyor. Yardımcı olursanız çok memenun olurum.
 

Ekli dosyalar

  • 6.xlsx
    6.xlsx
    32.4 KB · Görüntüleme: 5
Merhaba.

Aşağıdaki kodları sayfanın kod kısmına kopyalayın.
B7 ve C7 hücrelerinde bir değişiklik olduğunda istediğiniz işlemi yapacaktır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Alan As Integer
    Dim Bak As Long
    Dim Say As Long
    Dim Bulundu As Boolean
    If Target.Text = "" Then Exit Sub
    Application.EnableEvents = False
    If Not Intersect(Target, Range("B7")) Is Nothing Then
        Alan = 2
    ElseIf Not Intersect(Target, Range("C7")) Is Nothing Then
        Alan = 3
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    Say = Cells(Rows.Count, Alan).End(3).Row
    For Bak = 10 To Say
        If Target.Text = Cells(Bak, Alan).Text Then
            Range("B" & Bak & ":AJ" & Bak).Cut
            Range("B10").Insert Shift:=xlDown
            Bulundu = True
            Exit For
        End If
    Next
    If Not Bulundu Then MsgBox "Aradığınız değer: '" & Target.Text & "' bulunamadı.", vbInformation
    Application.EnableEvents = True
End Sub
 
Sayın dalgalikur ilginiz için teşekkür ederim. Kodu ilgili sayfanın kod bölümüne ekledim işlem yaptığımda sorun veriyor. Bide örneğin 3. sıradaki kişiyi çağırdığımda sıra numarası değişmeden diğer kişiler gizlenecek şekilde süzme olması gerekiyor.
 

Ekli dosyalar

  • 6.xlsm
    6.xlsm
    39.6 KB · Görüntüleme: 3
  • Ekran Alıntısı.PNG
    Ekran Alıntısı.PNG
    38.2 KB · Görüntüleme: 6
Bu istediğiniz şeyi filtre kullanarak da yapabilirsiniz aslında ama istediğiniz şeyi aşağıdaki kod ile de yapabilirsiniz.


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Alan As Integer
    Dim Bak As Long
    Dim Say As Long
    Dim Bulundu As Boolean
    If Target.Text = "" Then Exit Sub
    Application.EnableEvents = False
    Rows.EntireRow.Hidden = False
    If Not Intersect(Target, Range("B7")) Is Nothing Then
        Alan = 2
    ElseIf Not Intersect(Target, Range("C7")) Is Nothing Then
        Alan = 3
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    Say = Cells(Rows.Count, Alan).End(3).Row
    For Bak = 10 To Say
        If Target.Text = Cells(Bak, Alan).Text Then
            Rows(Bak).EntireRow.Hidden = False
            Bulundu = True
        Else
            Rows(Bak).EntireRow.Hidden = True
        End If
    Next
    If Not Bulundu Then
        Rows.EntireRow.Hidden = False
        MsgBox "Aradığınız değer: '" & Target.Text & "' bulunamadı.", vbInformation
    End If
    Application.EnableEvents = True
End Sub
 
Bu istediğiniz şeyi filtre kullanarak da yapabilirsiniz aslında ama istediğiniz şeyi aşağıdaki kod ile de yapabilirsiniz.


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Alan As Integer
    Dim Bak As Long
    Dim Say As Long
    Dim Bulundu As Boolean
    If Target.Text = "" Then Exit Sub
    Application.EnableEvents = False
    Rows.EntireRow.Hidden = False
    If Not Intersect(Target, Range("B7")) Is Nothing Then
        Alan = 2
    ElseIf Not Intersect(Target, Range("C7")) Is Nothing Then
        Alan = 3
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    Say = Cells(Rows.Count, Alan).End(3).Row
    For Bak = 10 To Say
        If Target.Text = Cells(Bak, Alan).Text Then
            Rows(Bak).EntireRow.Hidden = False
            Bulundu = True
        Else
            Rows(Bak).EntireRow.Hidden = True
        End If
    Next
    If Not Bulundu Then
        Rows.EntireRow.Hidden = False
        MsgBox "Aradığınız değer: '" & Target.Text & "' bulunamadı.", vbInformation
    End If
    Application.EnableEvents = True
End Sub
sayın dalgalikur kod çok iyi oldu. yanlız girdiğim bilgiyi sildiğim de liste yine eski haline dönmesi gerekiyor. Örneğin 3. Kişiyi çağırdım işlem bitti B2 den çağırdığım kişiyi sildiğimde listenin eski halini alması gerekiyor. Teşekkür ederim.iyi çalışmalar.
 
Kod:
Rows.EntireRow.Hidden = False
Satırını
Kod:
If Target.Text = "" Then Exit Sub
Satırının üstüne alın.
 
Geri
Üst