• DİKKAT

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

Aynı olan veriler (Yinelenen veriler) beni uyarsın

Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Arkadaşlar sizden istediğim yardım. LİSTE sayfasında yaklaşık 50 bin verim var. Bu sayfaya yani VERİ sayfasına el ile bilgi giriyorum. VERİ sayfasına elle veri girerken GELİŞ TARİHİ ve GİDİŞ TARİHİ sütununda yer alan tarihler şayet LİSTE sayfasında yer alan GELİŞ TARİHİ ve GİDİŞ TARİHİ leri ile aynı ise VERİ sayfasının H ve I sütununa karşılığı olarak TARİH AYNI yazsın istiyorum.
ÖRNEK olarak mavi ile renklendiriğim satırlar LİSTE sayfasındaki mavi ile renklenmiş satırlar ile aynı, onun için H ve I sütunun da yer alan karşılıklarına TARİH AYNI ibareki yazması gerekiyor.
Yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

Aşağıdaki kodları ilgili sayfanın kod bölümüne yapıştırırsanız B, C, D ve E sütunları aynıysa F ve G sütunlarındaki aynı tarih için TARİH AYNI yazar. Ancak 50000 satırlık dosyada girilen her tarih kodun baştan çalışmasına neden olacağı için sonuç almak uzun sürebilir:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
son = Cells(Rows.Count, "B").End(3).Row + 1
If Intersect(Target, Range("F4:G" & son)) Is Nothing Then Exit Sub
a = Target.Row
Set s1 = Sheets("LİSTE")
sonliste = Sheets("LİSTE").Cells(Rows.Count, "B").End(3).Row
    For i = 4 To sonliste
        If Cells(a, "B") = s1.Cells(i, "B") And Cells(a, "C") = s1.Cells(i, "C") And Cells(a, "D") = s1.Cells(i, "D") _
        And Cells(a, "E") = s1.Cells(i, "E") Then
            If Target = s1.Cells(i, Target.Column) Then Target.Offset(0, 2) = "TARİH AYNI"
        End If
    Next
    
End Sub
 
Yusuf bey öncelikle ilginizden dolayı teşekkür ederim. Ancak, B, C, D ve E sütunlarının aynı olup olmaması önemli değil önemli olan yinelenen tarihlerin aynı olup olmadığıdır. O yüzden kodun uzun sürme ihtimaline karşın formül ile yapma şansımız var mıdır. O şekilde yardımcı olabilirmisiniz
 
H4 hücresinde aşağıdaki formülü girin, sonra aşağı ve yana kopyalayın:

Kod:
=EĞER(VE(F4<>"";EĞERSAY(LİSTE!F$4:F$50000;F4)>0);"TARİH AYNI";"")
 
Son düzenleme:
Yusuf bey teşekkür ederim. Emeğinize sağlık Allah razı olsun
 
Yusuf bey bir yerde bir anlatım hatası yapmışım sanırım, Buradaki kriter aynı kişiye ait olan tarihlerde geçerli olması gerekiyordu, sanki o tarihte kim gelmiş ve gitmiş ise gibi olmuş, oysa ilgili personel kimse onun tarihlerini kontrol etmesi gerekiyor. Yukarıdaki formülde aynı tarihte başka bir personel gitmiş ise onun tarihi diğer kişi ile aynı ise yine TARİH AYNI yazıyor doğal olarak, yazmaması ve aynı kişinin bilgilerini karşılaştırarak ona göre yazması gerekiyor.
 
Daha önce bu şekilde bir bilgi vermemiştiniz, hatta ben B, C, D ve E sütunlarını kontrol eden makro verdiğimde "B, C, D ve E sütunlarının aynı olmasına gerek yok, sadece aynı tarihler önemli" demiştiniz, ben de ona göre formülü yazdım.

İsteğiniz B sütununun da kontrol edilmesi ise formülü aşağıdaki gibi kullanmalısınız:

Kod:
=EĞER(VE(F4<>"";ÇOKEĞERSAY(LİSTE!F$4:F$50000;F4;LİSTE!B$4:B$50000;B4)>0);"TARİH AYNI";"")
 
Yusuf bey formülü uyguladım, Ancak tarih girince aynı tarih ise TARİH AYNI yazıyor bir sıkıntı yok ancak formülden çıkarıp değer olarak yazıyor. Yani formül Yerine TARİH AYNI diye direkt yazı olarak yazıyor formül kayboluyor.
 
Daha önce verdiğim makro hala dosyanızda duruyorsa o sebep oluyordur.
 
Geri
Üst