ekstre karşılaştırma hakkında

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
Merhaba mutabakatlar ıcın bır kodlama hazırlamaya calısıyorum sıteden buldugum bır kodu kendıme uyarlamaya calıstım fakat basarılı olamadım sız degerlı ustadlardan yardım beklıyorum eklı dosyamda tum detayları yazdım yardımlarınız ve ılgınız ıcın sımdıden tesekkur ederım.
 

Ekli dosyalar

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
arkadaslar baslıgım 33 goruntulenme almıs fakat hıckımse olumlu ya da olumsuz cevap yazmıs acaba ben mı anlatamadım sızden rıca mı ? yoksa ıstedıgım sey yapılması mumkun olmayan bırsey mı ? ustadlar en azından olumsuz dahı olsa bır cevap yazarsa sevınırım teşekkurler
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Yazarken kafam karıştı, umarım doğru anlamışımdır. :)
Tarihlerdeki saatler dikkate alınmıyor sanırım.
Kod:
Sub Ekstre_Bak()

    Dim i As Long, j As Long, s1 As Long, s2 As Long, a1 As Byte, a2 As Byte, a3 As Byte
 
    Application.ScreenUpdating = False
 
    Range("A4:K" & Rows.Count).Interior.ColorIndex = xlNone
 
    s1 = [A:E].Find("*", , , , xlByRows, xlPrevious).Row
    s2 = [G:K].Find("*", , , , xlByRows, xlPrevious).Row
 
    Range("A4:E" & s1).Interior.ColorIndex = 3
    Range("G4:K" & s2).Interior.ColorIndex = 3
     
    For i = 4 To s1
        a1 = 1: a2 = 1: a3 = 1
        For j = 4 To s2
     
            If Format(Cells(i, "A"), "dd.mm.yyyy") = Format(Cells(j, "G"), "dd.mm.yyyy") Then
                If Cells(i, "D") = Cells(j, "K") Then
                    If Cells(i, "E") = Cells(j, "J") Then
                        If Cells(i, "C") <> Cells(j, "I") Then
                            If a1 = 1 Then Cells(i, "A").Resize(1, 5).Interior.ColorIndex = 4
                            Cells(j, "G").Resize(1, 5).Interior.ColorIndex = 4: a1 = 2
                        End If
                    End If
                End If
            End If
         
            If Format(Cells(i, "A"), "dd.mm.yyyy") <> Format(Cells(j, "G"), "dd.mm.yyyy") Then
                If Cells(i, "D") = Cells(j, "K") Then
                    If Cells(i, "E") = Cells(j, "J") Then
                        If Cells(i, "C") = Cells(j, "I") Then
                            If a2 = 1 Then Cells(i, "A").Resize(1, 5).Interior.ColorIndex = 18
                            Cells(j, "G").Resize(1, 5).Interior.ColorIndex = 18: a2 = 2
                        End If
                    End If
                End If
            End If
         
            If Format(Cells(i, "A"), "dd.mm.yyyy") = Format(Cells(j, "G"), "dd.mm.yyyy") Then
                If Cells(i, "D") = Cells(j, "K") Then
                    If Cells(i, "E") = Cells(j, "J") Then
                        If Cells(i, "C") = Cells(j, "I") Then
                            If a3 = 1 Then Cells(i, "A").Resize(1, 5).Interior.ColorIndex = 0
                            Cells(j, "G").Resize(1, 5).Interior.ColorIndex = 0: a3 = 2
                        End If
                    End If
                End If
            End If
        
        Next j
    Next i 
     
End Sub
 

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
@Ömer ustad tesekkur ederım kod calısıyor
 

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
@Ömer ustad vaktınızı almayacaksa ekstre 1 de olup ekstre 2 olmayan bır kayıt varsa veya ekstre 2 de olup ekstre 1 de olmayan bır kayıt varsa o sarı renk olabılır mı ? ( şuankı yapıda tarıhler tutmayanda kırmızı ve ıkı taraftan bırınde olmayanda kırmızı ) tabı zamanınızı alıcaksam bu sekılde de ıdare edebılırım sımdıden tesekkurler
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Tarih tutmayanlar kırmızı değil mor olması gerekir. ? O şekilde yazmıştım. Renkler birbirine yakın olduğu için karışmış olabilir mi?

Range("A4:E" & s1).Interior.ColorIndex = 3
Range("G4:K" & s2).Interior.ColorIndex = 3

Bu iki satırdaki 3 lerin yerine 6 yazarak deneyiniz.

.
 

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
@Ömer ustad şöyle anlatayım hem tarıh tutmayan hem ıkı ekstreden bırınde olmayanları aynı renk atıyor sızın dedıgınız gıbı sımdıde ıkı kosulu sarı olarak atıyor ben ıkı ekstreden bırınde olup dıgerınde olmayan bır kayıt varsa onu farklı bır renge boyamak ıstıyorum son halınde sarı renk kullanımda her ıkı ekstreden bırınde olup bırınde olmayan bır kayıt var ıse kırmızı rengı kullanabılırız tabı mumkunse
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Tarih farklı oldu mu mor, belge farklı oldu mu yeşil, 2 listenin birinde yoksa kırmızı, ekran görüntüsü aşağıdadır.
İstediğiniz bu değil mi? Hangi hücrenin rengi hatalı ve neden?

Yeşili görebilmek için deneme amaçlı I16 hücresini sildim.

220671
 

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
@Ömer ustadım aslında şöyle sızdekı excele vaktınız var ıse ekstre1 e belge no yazıp yenı bır kayıt ekleyebılırsenız ıkıncı ekstreye de belge no yazmadan kayıt eklersenız ( aynı tarıhlerde ) o verınınde kırmızı attıgını göruceksınız yanı aslında ıkı tarafta var ama bırınde belge no olan ıle dıgerınde olmayanda kırmızı renk atıyor aslında bunda bır problem yok ben sadece aynı renge ıkı koşul vermısız demeye calısıyorum bır ekstrede var fakat dıgerınde yoksa farklı bır renk olsun demeye calıstım. yınede sızın zamanınızı calıcak bırsey ıse cok elzem bır problem degıl ayrıca ılgınız ıcın tekrar tesekkur ederım.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Mesajınızda yazdığınız işlemlerden sonra kodları çalıştırdınız mı?

Söylediğiniz gibi, örnek dosyaya göre;

A143 hücresine 25.08.2020
C143 hücresine A01

G685 hücresine 25.08.2020
I685 hücresini boş bıraktım

Kodları çalıştırdıktan sonra bu 2 satır yeşil oldu.

Ek olarak ben s1 ve s2 tanımlarında son satırı tarihe göre almıştım, eğer bazı satırlarda tarih olmama ihtimali varsa

s1 = Cells(Rows.Count, "A").End(xlUp).Row
s2 = Cells(Rows.Count, "G").End(xlUp).Row

yerine aşağıdaki tanımları yazarsınız. (Olma ihtimali varsa da yazabilirsiniz, tarih yazmayı atlamaya karşı daha garanti olur.)

s1 = [A:E].Find("*", , , , xlByRows, xlPrevious).Row
s2 = [G:K].Find("*", , , , xlByRows, xlPrevious).Row

Üsteki kodları buna göre güncelledim.
 

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
@Ömer ustadım gec yazdıgım ıcın ozur dılerım aslında dedıgınız gıbı benım lıstemde çok degısken var o yuzden benım dedıgım sorun cıkarıyor ama çok buyuk bır problem degıl o yuzden vaktınızı almak ıstemıyorum ılgınız ıcın tekrardan tesekkur ederım. tek sormak ıstedıgım koşullarda verdıgımız renklerı degıstırmek ıstersek kodların neresınde oynama yapmamız gerekır ben deneme yanılma yontemıyle renklerde oynama yapabılırım.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Kodlardaki tüm .Interior.ColorIndex = 3 satırlarındaki sayı değerlerini değiştirmeniz gerekir. 0-3-4-18 Kullanılmıştır.
Renk kodları aşağıdadır.

220676
 

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
@Ömer ustadım tesekkur ederım
 
Üst