aynı sayfadaki verileri karşılaştırıp farkları raporlama

Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
arkadaşlar merhaba,

ekteki sayfada biribirinin aynı olması gereken iki veri kümesi bulunuyor. (b:g kolonları arası bir küme; ı:n kolonları arası diğer küme)

Sorularım aşağıdadır :

1 ) ı2:n2 bölümündeki tüm bilgiler birebir b2:g36 alanındaki herhangi bir satırdaki bilgilerle uyuşuyorsa yazacağımız kod hem ı2:n2' deki bilgileri, hem de b2:g36 alanında denk gelen bölümdeki bilgileri silsin.

Örnek 1:

ı2 : n2 arasındaki ver şöyledir :

136 rrr TCELL 302 21.05.2007 2412.38


bire bir tüm hücrelerdeki verilerin eşit olduğu ilk alandaki bölüm b2:g2' dir.

136 rrr TCELL 302 21.05.2007 2412.38

buna göre macro, ı2:n2 ve b2:g2 ' deki bilgileri temizleyecektir.

2) Hesap aynı olmak kaydıyla müşteri, kıymet kodu, miktar, iktisap, maliyet hücrelerinden bir tanesi dahi farklıysa, farklı olan hücreyi sarı renkli boyasın

Örnek 2 :

ı31 : n31 arasındaki ver şöyledir :

735180 so IDAS 200,000.000 15.12.2006 92,477.620

oysa aynı hesaba denk gelen b26:g26 arasındaki veri şöyledir ;

735180 so IDAS 20000 15.12.2006 92400

buna göre makro miktar' ı belirten e26 ve L31 hücrelerini sarıya boyamalı ve buna ilişkin satırlardaki diğer verileri silmemeli/değiştirmemelidir.


Ancak maliyet' e ilişkin verileri karşılaştırırken (+; -) %10' luk farkları da "fark" olarak görmemelidir.

şimdiden teşekkürler...
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
herkese tekrar merhaba,

derdimi anlatmaya çalıştığım yazıyı karışık / anlaşılmaz mı yazmışım acaba ? Henüz hiç yanıt / yorum gelmedi. karışıklık / anlaşılmazlıkdan yakınan tek bir üye olsa dahi daha net açıklamaya çalışacağım. Aksi takdirde konunun excel' de çözümünün son derece karışık ve hatta imkansız olduğunu mu düşünmem gerekiyor ? değerli görüş ve yorumlarınızı bekliyorum ....

herkese selam, saygılar...
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Aşağıdaki kodu çalışma kitabına bir modül ilave ederek, kopyalayınız lütfen.

Anladığım kadarıyla; sorunuzun bir kısmı bu şekilde çözülecek. Daha sonraki aşamalarını görüşürüz.

Sub deneme()
ii = Range("I2").Value
jj = Range("J2").Value
kk = Range("K2").Value
ll = Range("L2").Value
mm = Range("M2").Value
nn = Range("N2").Value

Set sh = Sheets("Sheet1")
son = sh.Cells(65536, 2).End(xlUp).Row

For i = 2 To son

If sh.Cells(i, 2) = ii And sh.Cells(i, 3) = jj And sh.Cells(i, 4) = kk _
And sh.Cells(i, 5) = ll And sh.Cells(i, 6) = mm _
And sh.Cells(i, 7) = nn Then
With sh
.Cells(i, 2) = ""
.Cells(i, 3) = ""
.Cells(i, 4) = ""
.Cells(i, 5) = ""
.Cells(i, 6) = ""
.Cells(i, 7) = ""
End With

Else

If sh.Cells(i, 2) = ii Then: sh.Cells(i, 2).Interior.ColorIndex = 36
If sh.Cells(i, 3) = jj Then: sh.Cells(i, 3).Interior.ColorIndex = 36
If sh.Cells(i, 4) = kk Then: sh.Cells(i, 4).Interior.ColorIndex = 36
If sh.Cells(i, 5) = ll Then: sh.Cells(i, 5).Interior.ColorIndex = 36
If sh.Cells(i, 6) = mm Then: sh.Cells(i, 6).Interior.ColorIndex = 36
If sh.Cells(i, 7) = nn Then: sh.Cells(i, 7).Interior.ColorIndex = 36

End If
Next i

End Sub
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
öncelikle vakit ayırdığınız için teşekkürler.. macro çalışıyor ancak iki hususa değinmek istiyorum :

1) sadece 2. satırdaki verileri karşılaştırıyor. 2. satırda işi bitince tüm satırlar bitinceye kadar karşılaştırmaya devam etmesi gerekiyor...

2) veriler arasında farklılık olmaması durumunda b:g alanındaki bilgileri siliyor. Buna karşılık gelen ı:n alanındaki bilgileri de silmesi gerekiyor..

teşekkürler..
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
O halde; aşağıdakini bir dener misiniz ?

Sub karsilatir()
Set sh = Sheets("Sheet1")
son_sag = sh.Cells(65536, 9).End(xlUp).Row
son_sol = sh.Cells(65536, 2).End(xlUp).Row
For a = 2 To son_sag
ii = sh.Cells(a, 9).Value
jj = sh.Cells(a, 10).Value
kk = sh.Cells(a, 11).Value
ll = sh.Cells(a, 12).Value
mm = sh.Cells(a, 13).Value
nn = sh.Cells(a, 14).Value

For i = 2 To son_sol
If sh.Cells(i, 2) = ii And sh.Cells(i, 3) = jj And sh.Cells(i, 4) = kk _
And sh.Cells(i, 5) = ll And sh.Cells(i, 6) = mm _
And sh.Cells(i, 7) = nn Then
With sh
.Cells(i, 2) = ""
.Cells(i, 3) = ""
.Cells(i, 4) = ""
.Cells(i, 5) = ""
.Cells(i, 6) = ""
.Cells(i, 7) = ""

.Cells(a, 9) = ""
.Cells(a, 10) = ""
.Cells(a, 11) = ""
.Cells(a, 12) = ""
.Cells(a, 13) = ""
.Cells(a, 14) = ""
End With
Else
If sh.Cells(i, 2) = ii Then: sh.Cells(i, 2).Interior.ColorIndex = 36
If sh.Cells(i, 3) = jj Then: sh.Cells(i, 3).Interior.ColorIndex = 36
If sh.Cells(i, 4) = kk Then: sh.Cells(i, 4).Interior.ColorIndex = 36
If sh.Cells(i, 5) = ll Then: sh.Cells(i, 5).Interior.ColorIndex = 36
If sh.Cells(i, 6) = mm Then: sh.Cells(i, 6).Interior.ColorIndex = 36
If sh.Cells(i, 7) = nn Then: sh.Cells(i, 7).Interior.ColorIndex = 36
End If

Next i
Next a
End Sub

Bu kodlarda :

1. Sağdaki tablodaki, herbir satır soldaki tablo ile karşılaştırılmakta.
2. Aynı olan satırlar, hem sağdaki hem soldaki tablodan silinmekte.
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
zamanın ve değerli katkıların için teşekkürler fpc..
bu akşam için geç oldu.. yarın deneyip sonucu paylaşırım.
teşekkürler...
 
Katılım
1 Mart 2007
Mesajlar
94
Excel Vers. ve Dili
Excel 2010 Eng
Merhabalar günaydın.

Bende biraz kopya çekerek şöyle bir şey yaptım dosya olarak ekliyorum.

Kod:
Sub karsilastir()

On Error Resume Next

Dim deger, deger2, deger3, deger4 As Variant

Set sh = Sheets("Sheet1")
son = sh.Cells(65536, 9).End(xlUp).Row

If son <> 0 Then
    For i = 1 To son Step 1
    
    i = i + 1
    deger = Range("I" & i).Value & Range("J" & i).Value & Range("K" & i).Value & Range("L" & i).Value & Range("M" & i).Value & Range("N" & i).Value
    deger2 = Range("B" & i).Value & Range("C" & i).Value & Range("D" & i).Value & Range("E" & i).Value & Range("F" & i).Value & Range("G" & i).Value
    deger3 = Range("J" & i).Value & Range("K" & i).Value & Range("L" & i).Value & Range("M" & i).Value & Range("N" & i).Value
    deger4 = Range("C" & i).Value & Range("D" & i).Value & Range("E" & i).Value & Range("F" & i).Value & Range("G" & i).Value
        If deger = deger2 Then
            Range("A" & i & ":N" & i).Delete Shift:=xlUp
            Application.CutCopyMode = False
            
        End If
    i = i - 1
    
    Next i
End If

    For a = 2 To son
        If Range("I" & a).Value = Range("B" & a).Value Then
            For n = 3 To 7
                If Cells(a, n).Value <> Cells(a, n + 7).Value Then
                    Cells(a, n).Interior.ColorIndex = 36
                    Cells(a, n + 7).Interior.ColorIndex = 36
                    End If
            Next n
        End If
    Next a
    

End Sub
 
Son düzenleme:
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
emeğin için teşekkürler agent1980. ancak karşılaştırmayı aynı satırdaki veriler için yapıyor.

örneğin b2' deki numarayı 140' dan 1400 yapıp; b2:h2' deki bilgileri 25. satıra kopyalayınca ı2:n2 arasındaki veriyi 25. satrıdaki veriyle değil; yine b2:h2 arasındaki veriyle yapıyor.

bir de iki önemli koşul olacaktı :

1) hesap numaraları aynı olan veri kümeleri karşılaştırılacaktır.

2) maliyet hücreleri arasında 1/1000 kadar bir farklılık varsa, iki veri arasında fark yokmuş gibi davranılacaktır.

senin yazdığın veya sayın fpc' nin ikinci yazdığı kod; yukarıdaki iki koşulu sağlayacak şekilde çalıştırılabilrse olacak gibi....

kolay gelsin..
 
Katılım
1 Mart 2007
Mesajlar
94
Excel Vers. ve Dili
Excel 2010 Eng
Merhabalar...

Bu eklediğim dosyada iki farklı karşılaştırma makrosu var ikiside "I2:N2" den başlayarak aşağıya kadar satır satır değerleri "A2:G36" aralığında arıyor. Makrolardan bir tanesi uyanları hücre olarak siliyor, diğeri ise sadece hücre değerlerini siliyor. son olarak hesap numaraları aynı olan satırdaki hücreleri kontrol edip farklı olanları sarı olarak renklendiriyor fakat maliyet sütunundaki 1/1000 lik sapmaları göz ardı ediliyor. Galiba bu şekilde istemiştiniz.

Daha fazasını beceremedim. Bu kadarına kafam bastı :)
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
emeğine sağlık agent1980.

şu sıralar kontrol etmem mümkün olamayacak, ancak neticeden haberdar ederim seni.

iyi geceler...
 
Üst