• DİKKAT

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

Soru Sadece belirtilen sayfalarda Mükerrer Kontrolü

reosman

Altın Üye
Katılım
26 Nisan 2021
Mesajlar
178
Excel Vers. ve Dili
TR 2021
Saygıdeğer Üstadlar,
Ekteki dosya sütun belirtilerek tüm sayfalarda mükerrer kontrolü yapmakta
Tüm sayfalarda değilde sadece belirtilen sayfalarda kontrol yaptırmak için
kodları hangi şekilde revize edebiliriz. Saygılarımla.
 

Ekli dosyalar

İlginize çok teşekkür ederim Yusuf bey, örneği incelemiştim fakat benim talebimle ilgili örnek yok.
 
Örnege göre tüm sayfalarda arama yapıyor ben bazı sayfalarda arama yapmasını istediğimden arama yapılacak sayfaları ve sütunları belirtmek istiyorum.
 
Korhan hocam yukarıdaki uygulama sizin yapımınız rica etsem yardım edermisiniz.
 
Kod içindeki aşağıdaki satır arama yapılacak alanı ifade ediyor. Dilediğiniz gibi değiştirebilirsiniz.

Set Alan = Range("A1:Z1000")



Kod içindeki aşağıdaki satır ise çalışma kitabındaki tüm sayfaları işleme alıyor.

For Each Sayfa In ThisWorkbook.Worksheets

Koyu renkli bölümü aşağıdaki gibi düzenlerseniz sadece yazdığınız sayfalarda işlem yapacaktır.

For Each Sayfa In Sheets(Array("Sheet1", "Sheet3"))
 
Hocam birde bu mükerrer kayıt bulma kaydı elle yazarken buluyor, kopyala yapıştır yapılırsa mükerreri bulmuyor. Bunun için ne yapabiliriz ?
 
Şöyle deneme yaptım.

A10 hücresine DENEME yazdım. Sonra bu hücreyip kopyalayıp C10 hücresine yapıştırdım.

Veri mükerrer olduğu için form ekrana geldi.

Yani kopyala-yapıştır işleminde de kodlar tepki veriyor.
 
Hocam toplu kopyala yapıştır yapınca bir fark olabilirmi. Saygılarımla.
 
hocam toplu kopyala yapıştır yapıldığında kod devreye girmiyor. Saygılarımla.
 
A1:A10 aralığına ALİ yazdım. Direkt form açıldı. Formu kapattım.

A1:A10 aralığını seçtim. Kopyala deyip B1 hücresine topla şekilde yapıştırdım. Yine form açıldı.

Yani bende sorunsuz çalıştı.
 
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
Dim Sayfa As Worksheet, Alan As Range, Veri As Range, Aranan As String, Bul As Range, Adres As String, Mesaj As String, Dizi As Object, Say As Long
On Error Resume Next
Set Alan = Range("D2:D1048576")

If Intersect(Target, Alan) Is Nothing Then Exit Sub

Set Dizi = CreateObject("Scripting.Dictionary")

ReDim Liste(1 To 3, 1 To 1)

For Each Sayfa In Sheets(Array("Yüreğir-2", "Yüreğir-4", "Sarıçam-2", "Sarıçam-4"))
For Each Veri In Target.Cells(1, 1)
If Veri.Value <> Empty Then
Set Bul = Nothing
Set Bul = Sayfa.Range(Alan.Address).Find(Veri.Value, LookAt:=xlWhole)
If Not Bul Is Nothing Then
Adres = Bul.Address
Do
Aranan = Sayfa.Name & "|" & Bul.Address & "|" & Bul.FormulaLocal
If Not Dizi.Exists(Aranan) Then
Say = Say + 1
Dizi.Add Aranan, Say
ReDim Preserve Liste(1 To 3, 1 To Say)
Liste(1, Say) = Sayfa.Name
Liste(2, Say) = Bul.Address
Liste(3, Say) = Bul.FormulaLocal
End If
Set Bul = Sayfa.Range(Alan.Address).FindNext(Bul)
Loop While Not Bul Is Nothing And Bul.Address <> Adres
End If
End If
Next
Next

If Say > 1 Then
With Mukerrer
.ListBox1.ColumnCount = 3
.ListBox1.ColumnWidths = "190;120;100"
.ListBox1.Column = Liste
.Show
End With
End If
End Sub

Hocam benim kodlar şu şekilde
 
Neyse hocam sizide yordum ilginize çok teşekkür ederim.
 
Bütün denemeleri ilk mesajda ki dosya üzerinde yaptım. Siz de o dosya üzerinde deneyip sonucu bildirir misiniz?

Eğer o dosyada sorun yoksa sizin dosyanızda farklı bir durum olabilir. Bu durumu çözebilmek için örnek dosya paylaşmanız gerekir.
 
Hocam sonuç olumsuz.
Şöyleki;

b-c-d-e sütunlarından örneğin 5 satır birlikte kopyala yapıştır yapınca mükerrer bulmuyor.

Sadece D sütunundan örneğin 5 satır kopyala yapıştır yapınca buluyor.
 
Evet çalışmanın özü tek hücre veri girişi üzerine kurgulanmıştı.

Çoklu hücre sorgusu için "ThisWorkbook" bölümünde ki aşağıdaki satırı bulun ve bir sonraki satır ile değiştirip deneyin.

Eski hali;
For Each Veri In Target.Cells(1, 1)

Yeni hali;
For Each Veri In Target
 
Geri
Üst