Şartlı Gizle Göster, Git

Katılım
5 Ocak 2021
Mesajlar
56
Excel Vers. ve Dili
2010 ve Türkçe
Arkadaşlar öncelikle durum acil ve şimdiden herkese teşekkür ediyorum.

Q2 hücresindeki yazıyı veya en yakın sonucu A3 ile A sütunun dolu olan son satırları içinde arayacak. buldukları haricindeki diğer tüm satırları gizleyecek.

A sütunu isim listesi olduğu için aynı isimden 2 veya daha fazla olma ihtimali var o nedenle benzer sonuçların olduğu satırlar haricindekileri gizlesin istiyorum.

Q2 deki veriyi silince gizlenenler tekrar gösterilecek.

bu sorunum için lütfen bir makro.

 
Son düzenleme:

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
224
Excel Vers. ve Dili
Office Pro 2016 TR
Altın Üyelik Bitiş Tarihi
09-02-2028
Örnek dosya ekler misiniz anlayamadım istediğinizi
 
Katılım
5 Ocak 2021
Mesajlar
56
Excel Vers. ve Dili
2010 ve Türkçe
Örnek dosya ekler misiniz anlayamadım istediğinizi
Yusuf hocam örnek dosyayı nasıl yüklerim bilmiyorum ama istediğim şeyin sizin için basit olduğunu biliyorum.

Q2 hücresinde "Ahmet" yazıyor varsayalım.
A3 ile A253 arasında 250 adet isim yazılı ve karışık.
A sütununda "Ahmet" kelimesini içeren satırlar kalacak ve gerisi gizlenecek.

Q2 yi temizlediğimde ise gizli olanlar tekrar görünecek.

hepsi bu.

Eğer mümkünse bunu şöyle yapmak isterim.
Q2 ye aramak istediğim kelimeyi girip Q2 den başka bir hücreye çıkınca (enter basınca veya tab tuşuna basınca yani Q2 ayrıldığımda) makro çalışsın. olmazsa buton ile de yapabilirim sorun değil.

Eğer doğru yaptıysam dosya paylaşım ile çözdüm Yusuf Hocam

 
Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Autofilter ile yapmak isterseniz.
A1:A3 hücresini birleştirmeyin. A3:A aralığında filtre yapar.
249531
Kodu sayfanın kod kısmına ekleyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("Q2")) Is Nothing Then
        With Range("A3:A" & Cells(Rows.Count, 1).End(3).Row)
            If .Parent.AutoFilterMode Then .AutoFilter
            If Target.Value <> "" Then .AutoFilter 1, "*" & Target.Value & "*"
        End With
    End If
End Sub
 
Katılım
5 Ocak 2021
Mesajlar
56
Excel Vers. ve Dili
2010 ve Türkçe
Teşekkür ederim arkadaşlar. Henüz denemedim ama önemli olan emeğiniz olduğu için teşekkürler. Elinize sağlık.
 
Katılım
5 Ocak 2021
Mesajlar
56
Excel Vers. ve Dili
2010 ve Türkçe
Autofilter ile yapmak isterseniz.
A1:A3 hücresini birleştirmeyin. A3:A aralığında filtre yapar.
Ekli dosyayı görüntüle 249531
Kodu sayfanın kod kısmına ekleyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("Q2")) Is Nothing Then
        With Range("A3:A" & Cells(Rows.Count, 1).End(3).Row)
            If .Parent.AutoFilterMode Then .AutoFilter
            If Target.Value <> "" Then .AutoFilter 1, "*" & Target.Value & "*"
        End With
    End If
End Sub
Mükemmel çalıştı, teşekkürler
 
Katılım
5 Ocak 2021
Mesajlar
56
Excel Vers. ve Dili
2010 ve Türkçe
Deneyiniz
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("Q2")) Is Nothing Then
        FilterNames
    End If
End Sub

Sub FilterNames()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
  
    Dim ws As Worksheet
    Set ws = ActiveWorkbook.ActiveSheet
  
    Dim filterName As String
    filterName = ws.Range("Q2").Value
    Dim cell As Range 
    ws.Rows.Hidden = False

    If filterName = "" Then
        GoTo Cleanup
    End If

    For Each cell In ws.Range("A3:A253")
        If Not cell.Value Like "*" & filterName & "*" Then
            cell.EntireRow.Hidden = True
        End If
    Next cell
  
End Sub
Hocam

If filterName = "" Then
GoTo Cleanup
End If

sizin kodu denediğimde bu kısımda hata verdi. GoTo cleanup kısmını silip MsgBox "Arama Kutusuna Veri Girmelisiniz." yazdım ama Q2 verisini silip enter yaptığımda bu defa hiç hata vermedi ama mesaj da görünmedi. doğal olarak gizli satırları tekrar görünür hale getiremediğim için tekrar filtreleme yapamadım.

Emeğiniz için teşekkürler.

Fakat hatayı düzeltebilirsem arşive ekleyeceğim. Aynı soruları tekrar tekrar sormamak için kodları arşivliyorum.
 
Son düzenleme:
Üst