VBA ile Filtrelenen Satırları Saymak

Katılım
26 Aralık 2012
Mesajlar
4
Excel Vers. ve Dili
office 2010 ingilizce
Arkadaşlar şöyle bir sorum var. Elimde bir excel listesi mevcut, 5 kolondan oluşuyor.

1. Kolon Sıra No, 2. kolon İsim, 3. kolon 1. filtre, 4. kolon 2. filtre, 5. kolon 3. filtre

100 adette satır mevcut. Şimdi 1. kolonda satırlar boş.

2. kolonda 100 adet isim var.

3,4 ve 5. kolonlarda da rastgele "x" değerleri mevcut. x olmayan yerlerde veri yok.

İstenen şu;

3,4 veya 5. kolonlarda filtreleme yapıldığında yani sadece x ler listelendiğinde, bir butona basılacak ve 1. kolon altında sıra ile listelenen satır kadar rakamlar yazacak.

ben bunu döngü ile yaptım, ancak filtreleme yaptığımda sıralama atlayarak gidiyor.

Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,892
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Şu kısımları biraz daha açmanızda fayda var.
Listelenen satır sayısını mı öğrenmek istiyorsunuz yoksa
listelenen satırlara sıra no mu vermek ?

. . .
 
Katılım
26 Aralık 2012
Mesajlar
4
Excel Vers. ve Dili
office 2010 ingilizce
Listelenen satırlara sıra no vermek istiyorum Hüseyin Bey, eksik yazmışım pardon.

Yani diyelim ki 1. filtrelemenin ardından 1. kolonda yer alan satırlarım 1,2,3,4,5 diye sıralı gidecek.

Veya 2. filtrelemenin ardından yine 1,2,3,4,5 diye sıralı gidecek.

Benim şu anda mevcut durumda filtreleme ardından örneğin sıra numaram 1,3,5,6,8 şeklinde filtrelenmiş duruma göre (yani ilgili filtre alanındaki X'in bulunduğu yere göre gidiyor) gidiyor.

Teşekkürler, ilginiz için.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Bunun için makro şart mı?

A sütununun sıra numarası olduğunu varsayalım ve 1. satır başlık olsun
Aşağıdaki fonksiyonu filtreleme olmadan tüm satırlara uygulayın.
A2:

Kod:
=ALTTOPLAM(3;$B$2:B2)
Nasıl filtreleme yaparsanız yapın düzgün sıra numarası verecektir.
 
Katılım
26 Aralık 2012
Mesajlar
4
Excel Vers. ve Dili
office 2010 ingilizce
Bu sefer şu sıkıntı oluyor. 1. filtre belirttiğiniz gibi B kolonunda ise sayıyor ama diyelim ki C kolonunda 2. filtre mevcut. Bu sefer C kolonu için özel sayamıyor. B'deki X sayısı fazla ise yine B kadar sayıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,271
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Filtreleme işleminden sonra aşağıdaki Kodu çalıştırıp deneyin.

Kod:
Sub Sira_No_Yenile()
    Dim X As Long, Son As Long, No As Long
    
    Son = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    No = 1
    
    For X = 2 To Son
        If Cells(X, 1).RowHeight <> 0 Then
            Cells(X, 1) = No
            No = No + 1
        Else
            Cells(X, 1) = ""
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
26 Aralık 2012
Mesajlar
4
Excel Vers. ve Dili
office 2010 ingilizce
Arkadaşlar hepinize çok teşekkür ederim.

Korhan Bey tam istediğim işlemi gerçekleştiriyor. Çok teşekkür ederim emeğiniz için. Saygılarımla.
 
Katılım
21 Temmuz 2010
Mesajlar
53
Excel Vers. ve Dili
2007 ve 2010 Türkçe
güzel bir konu

merhaba veri filtresinden sonra (yani kaç tane filtreleme sutunu olursa olsun) süzülmüş veriye sıra no vermek ilginç bir uygulama olmuş.
iyi günler kolay gelsin.
 
Son düzenleme:
Katılım
18 Mart 2007
Mesajlar
171
Excel Vers. ve Dili
OFFICE 2016
Altın Üyelik Bitiş Tarihi
02-03-2024
Filtreleme işleminden sonra aşağıdaki Kodu çalıştırıp deneyin.

Kod:
Sub Sira_No_Yenile()
    Dim X As Long, Son As Long, No As Long
   
    Son = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    No = 1
   
    For X = 2 To Son
        If Cells(X, 1).RowHeight <> 0 Then
            Cells(X, 1) = No
            No = No + 1
        Else
            Cells(X, 1) = ""
        End If
    Next
   
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
Üstad emeğine sağlık, ben şunu ararken bu kodlara rastladım ama bana filtrenen satır sayısı lazım. Aşağıdaki kod ile satır sayısını saydırıyorum ama filtrediğim zaman gizlenen satırlarıda sayıyor. Ben sadece filtrenen satır sayısını dinamik olarak A9'a yazdıracağım. Yardımcı olabilir misiniz

Sub satirsay()
Range("a9") = ""
ss = Application.WorksheetFunction.CountA(Range("a11 :a2000"))
Range("a9") = "Toplam " & ss & " kayıt listelenmiştir."

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,271
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Filtre durumları için ALTTOPLAM fonksiyonunu kullanabilirsiniz.
 
Katılım
18 Mart 2007
Mesajlar
171
Excel Vers. ve Dili
OFFICE 2016
Altın Üyelik Bitiş Tarihi
02-03-2024
Filtre durumları için ALTTOPLAM fonksiyonunu kullanabilirsiniz.
alt toplam ile hallettim şu şekilde çözdüm üstad. Belki başkasının da ihtiyacı olur diye aşağıda paylaşayım

Sub satirsayfiltre()
Range("a9") = ""
ss = Application.WorksheetFunction.Subtotal(3, Range("A11:A2000"))

Range("a9") = "Toplam " & ss & " kayıt listelenmiştir."

End Sub
 
Katılım
20 Mart 2022
Mesajlar
2
Excel Vers. ve Dili
Version 2202
Dil:İngilizce
alt toplam ile hallettim şu şekilde çözdüm üstad. Belki başkasının da ihtiyacı olur diye aşağıda paylaşayım

Sub satirsayfiltre()
Range("a9") = ""
ss = Application.WorksheetFunction.Subtotal(3, Range("A11:A2000"))

Range("a9") = "Toplam " & ss & " kayıt listelenmiştir."

End Sub
Merhaba
Ben de aynı sorunu yaşadım. Fakat subtotal fonksiyonu bu işi çözmedi. Sayma yapıp istediğim hücreye değeri girdiremedim. Filtreden sonra dolu satırları saymanın başka bir yolu var mı??
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,271
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Çözüm için örnek dosyanızı görmekte fayda var.
 
Üst