Tüm Sayfalarda Tekrar Sayısını Sayma/Veri Getirme

Katılım
15 Aralık 2017
Mesajlar
33
Excel Vers. ve Dili
EXCEL 2016 - TÜRKÇE
Altın Üyelik Bitiş Tarihi
01-12-2023
İyi günler
Bir tablomuz var. Sürekli sayfa ekleyerek bu sayfa içerisine isim listesi hazırlıyoruz. (isimler sürekli sabit bir satıra yazılmamış)
Hangi ismin kaç kere tekrar ettiğini bulmamız gerekiyor ama nasıl bir yol izleyeceğimi bilmiyorum.
Dosya içerisinde onlarca sayfa var ve isimleri birbirinden farklı, belli bir düzende değil.
Örneğin; yeni bir sayfa açtım ve bu sayfanın A1 hücresine Ahmet yazdığımda B1 hücresine Ahmet'in tüm dosya içerisinde kaç defa isminin geçtiğini öğrenebilir miyiz?
Ya da bir tık daha ileri giderek, Ahmet yazdığımda Ahmet'in isminin hangi sayfalarda geçtiğini bulabilir miyiz?
Öncelikli istediğim ilki, ama ikincisi de olursa fena olmaz.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
559
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027

Bu sayfada Necdet hocamızın verdiği kod tüm sayfalarda arama yapmaktadır.Kullanıma ait tarif bu linktedir.
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Yıllar önce hazırladığım ve buraya yüklediğim dosya silinmiş.
İstediğinizi tam olarak yaptığını düşündüğüm dosyayı yeniden ekliyorum.

Harici Link, bir hafta içinde silinir.
 

Ekli dosyalar

Son düzenleme:
Katılım
15 Aralık 2017
Mesajlar
33
Excel Vers. ve Dili
EXCEL 2016 - TÜRKÇE
Altın Üyelik Bitiş Tarihi
01-12-2023
Geri dönüşler için teşekkür ederim. her iki yöntem de çok güzel çalışıyor.
Peki bu işlemleri hücreye uyarlamak mümkün mü ?
Örneğin; B2 hücresine Ahmet yazdığımda C2 hücresinde Ahmet'in tüm sayfalarda kaç tekrar yaptığını direk sayı olarak alabilir miyiz? yani arama yapmadan direk o hücreye girilen ismin sonucunu verecek. bu sayede bu liste şeklini şablon oluşturup onu kullanmaya başlayacağım. her liste hazırladığımda o kişinin daha önce kaç defa listede adının geçtiğini görmüş olmam gerekiyor.
Mümkünse C sütunundaki hücrelere ne yapmam gerekiyor.
Yani isim karşısında sayı yazacak, detaya ihtiyaç olduğunda üstteki yöntemle detay aranacak.
 
Son düzenleme:

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Aşağıdaki kodu Sayfa1 in kod bölümüne;
C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2")) Is Nothing Then
        If Target.Cells.Value = " " Or IsEmpty(Target) Then Exit Sub
        Bulunacak = Range("B2").Value
        Call Ara
    End If
End Sub
Aşağıdakini ise bir modüle yapıştırarak dener misiniz?
B2 ye yazdığınız sözcüğün tüm dosyada kaç kez geçtiğini C2 ye yazar.
C++:
Public Bulunacak As String
Sub Ara()
For i = 1 To Worksheets.Count
    Set Aranan = Sheets(i).Cells.Find(Bulunacak, , xlValues, xlWhole)
    If Not Aranan Is Nothing Then
        adres = Aranan.Address
        Do
            s = s + 1
            Set Aranan = Sheets(i).Cells.FindNext(Aranan)
        Loop While Not Aranan Is Nothing And Aranan.Address <> adres
    End If
    Range("C2") = s - 1
Next i
End Sub
 
Katılım
15 Aralık 2017
Mesajlar
33
Excel Vers. ve Dili
EXCEL 2016 - TÜRKÇE
Altın Üyelik Bitiş Tarihi
01-12-2023
Merhaba,

İşinize yararsa formülle alternatif..

Harici Link (Silinebilir) ; https://dosya.co/b6muntruwjox/Sayfalardan_Kritere_Göre_Sayma.xlsx.html
Hocam emeğinize sağlık güzel olmuş ama bir küçük düzeltme istesem sizden.
Elimizdeki mevcut listedeki sayfa isimleri çok karışık. Kimisi tarih, kimisi isim, isim ve tarih bir arada olan var. Hazırladığınız örnekte D sütununda yazan sayfa isimlerine bağlı arama yapıyor. Buna bağlı olmadan mevcut tüm sayfalarda arama yapamaz mıyız ?
 
Katılım
15 Aralık 2017
Mesajlar
33
Excel Vers. ve Dili
EXCEL 2016 - TÜRKÇE
Altın Üyelik Bitiş Tarihi
01-12-2023
Merhaba,
Aşağıdaki kodu Sayfa1 in kod bölümüne;
C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2")) Is Nothing Then
        If Target.Cells.Value = " " Or IsEmpty(Target) Then Exit Sub
        Bulunacak = Range("B2").Value
        Call Ara
    End If
End Sub
Aşağıdakini ise bir modüle yapıştırarak dener misiniz?
B2 ye yazdığınız sözcüğün tüm dosyada kaç kez geçtiğini C2 ye yazar.
C++:
Public Bulunacak As String
Sub Ara()
For i = 1 To Worksheets.Count
    Set Aranan = Sheets(i).Cells.Find(Bulunacak, , xlValues, xlWhole)
    If Not Aranan Is Nothing Then
        adres = Aranan.Address
        Do
            s = s + 1
            Set Aranan = Sheets(i).Cells.FindNext(Aranan)
        Loop While Not Aranan Is Nothing And Aranan.Address <> adres
    End If
    Range("C2") = s - 1
Next i
End Sub
Hocam geri dönüş için teşekkür ederim ama yapamadım. Kusura bakmayın.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Benim önerdiğim yöntemde sayfa isimleri bir yerde listelenmelidir. Yapmanız gereken tek işlem budur. Gerekirse bu işlemi makro ile yapabilirsiniz.

C++:
Sub Sheets_Name_List()
   Dim Sh As Worksheet
 
   Sheets("Rapor").Range("D:D").ClearContents
   Sheets("Rapor").Range("D:D").NumberFormat = "Q"
   X = 1

   For Each Sh In ThisWorkbook.Worksheets       
       If Sh.Name <> "Rapor" Then
          Sheets("Rapor").Range("D" & X) = Sh.Name
          X = X + 1
       End If
   Next

   MsgBox "İşleminiz tamamlanmıştır."
End Sub
 
Katılım
15 Aralık 2017
Mesajlar
33
Excel Vers. ve Dili
EXCEL 2016 - TÜRKÇE
Altın Üyelik Bitiş Tarihi
01-12-2023
tamamdır hocam teşekkür ederim. elinize sağlık.
 
Üst