Liste Karşılaştırma

Katılım
29 Ekim 2006
Mesajlar
295
Excel Vers. ve Dili
OFİS 2003 Türkçe
Daha önce ripek arkadasım yardımcı olmaya çalıştı ama uygulamaya geçiremedim malesef. Ekte bulunan örnekte iki adet liste var. İstediğim 2 listenin orjinal numaraları karşılaştırılarak fiyat farklarını 3. sayfaya yansıtması. Umarım zor değildir. Karşılaşacak bölümü kırmızı karekterlerle renklendirdim. lütfen bu sütun dikkate alınsın. Yardımlarınızı bekliyorum.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Bir modüle aşağıdaki kodları yapıştırıp çalıştırıp denermisiniz.:cool:
Kod:
Sub fark()
Dim sonsat As Long, sat As Long, i As Long, fark As Double
Sheets("MASPAR").Select
Sheets("Fark").Range("A6:B65536").ClearContents
sonsat = Cells(65536, "D").End(xlUp).Row
If sonsat < 6 Then Exit Sub
sat = 6
For i = 6 To sonsat
    If Cells(i, "D").Value = "" Then GoTo atla
    Set k = Sheets("YUCESAN").Range("D10:D65536").Find(Cells(i, "D").Value, lookat:=xlWhole)
    If Not k Is Nothing Then
        fark = Cells(i, "I").Value - Sheets("YUCESAN").Cells(k.Row, "H").Value
        Sheets("Fark").Cells(sat, "A").Value = Cells(i, "D").Value
        Sheets("Fark").Cells(sat, "B").Value = fark
        sat = sat + 1
    End If
atla:
Next i
Set k = Nothing
MsgBox "İ Ş L E M   T A M A M L A N D I ::!!"
End Sub
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Daha &#246;nce ripek arkadas&#305;m yard&#305;mc&#305; olmaya &#231;al&#305;&#351;t&#305; ama uygulamaya ge&#231;iremedim malesef.
Aynen &#246;yle. :)

Uygulanm&#305;&#351; hali ekte.
 
Katılım
29 Ekim 2006
Mesajlar
295
Excel Vers. ve Dili
OFİS 2003 Türkçe
Sayın sezar'ın kodlarını kullanarak oluşturduğum 2 liste arasında orjinal numaralar baz alınarak fiyat karşılaştırması gayet güzel çalışmakta fakat bazı seyler yapıldıkça malesef hedeflerde büyümektedir. :) Ekteki dosyada fark sayfasına 2 sayfa orjinal numaraları karşılaştırılarak fark sayfasına açıklamaları 2 sayfanın fiyatları aktarılması makro ile aktarılmasını istiyorum. Umarım konu hakkında yardımcı olacak arkadaşlar deniz gitmemiştir. :) Tekrar teşekkürler
 

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
Selamlar,

Sn. Sezar beyin size &#246;nerdi&#287;i kodu a&#351;a&#287;&#305;daki &#351;ekilde de&#287;i&#351;tirip denermisiniz.

Kod:
Sub fark()
Dim sonsat As Long, sat As Long, i As Long, fark As Double
Sheets("MASPAR").Select
Sheets("Fark").Range("A6:B65536").ClearContents
sonsat = Cells(65536, "D").End(xlUp).Row
If sonsat < 6 Then Exit Sub
sat = 6
For i = 6 To sonsat
    If Cells(i, "D").Value = "" Then GoTo atla
    Set k = Sheets("YUCESAN").Range("D10:D65536").Find(Cells(i, "D").Value, lookat:=xlWhole)
    If Not k Is Nothing Then
        fark = Cells(i, "I").Value - Sheets("YUCESAN").Cells(k.Row, "H").Value
        Sheets("Fark").Cells(sat, "A").Value = Cells(i, "D").Value
        Sheets("Fark").Cells(sat, "B").Value = Cells(i, "G").Value
        Sheets("Fark").Cells(sat, "C").Value = Sheets("YUCESAN").Cells(k.Row, "H").Value
        Sheets("Fark").Cells(sat, "D").Value = Cells(i, "I").Value
        Sheets("Fark").Cells(sat, "E").Value = fark
        sat = sat + 1
    End If
atla:
Next i
Set k = Nothing
MsgBox "&#304; &#350; L E M   T A M A M L A N D I ::!!"
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub fark()
Set sY = Sheets("YUCESAN")
Set sM = Sheets("MASPAR")
Set sF = Sheets("FARK")
Dim w()
Set dic = CreateObject("Scripting.Dictionary")

sY.Select
a = Range("d" & [d9].End(xlDown).Row & ":h" & [d65536].End(xlUp).Row).Value
    For x = 1 To UBound(a)
        If a(x, 1) <> Empty And a(x, 5) <> Empty Then
            If Not dic.exists(a(x, 1)) Then
                ReDim Preserve w(1 To 4)
                w(1) = a(x, 1)
                w(2) = a(x, 4)
                w(3) = a(x, 5)
                w(4) = 0
                dic.Add a(x, 1), w
            End If
        End If
    Next x
Set sY = Nothing

sM.Select
a = Range("d" & [d6].End(xlDown).Row & ":I" & [d65536].End(xlUp).Row).Value
    
    For x = 1 To UBound(a)
        If a(x, 1) <> Empty Then
                If dic.exists(a(x, 1)) Then
                    w = dic(a(x, 1))
                    w(4) = a(x, 6)
                    dic(a(x, 1)) = w
                End If
        End If
    Next x
Set sM = Nothing
Erase a
Erase w

x = dic.keys: y = dic.items
     For i = 0 To UBound(y)
          If y(i)(4) = 0 Then dic.Remove (x(i))
     Next

Erase x

y = dic.items

sF.Select
Range("A6:f65536").ClearContents
For x = 0 To UBound(y)
    Range("A6").Offset(x).Resize(, 4) = y(x)
    Range("A6").Offset(x, 4).Formula = "=RC[-2]-RC[-1]"
Next x
Set dic = Nothing
Set sF = Nothing
End Sub
 
Katılım
29 Ekim 2006
Mesajlar
295
Excel Vers. ve Dili
OFİS 2003 Türkçe
Teşekkürler Sayın veyselemre ve Sayın COST_CONTROL Her 2 kod da denediğim kadar güzel çalışıyor.
 
Katılım
29 Ekim 2006
Mesajlar
295
Excel Vers. ve Dili
OFİS 2003 Türkçe
Ekteki çalışmada yucesan sayfasında D sütununda boş olan satırları C sutunundan makro ile kopyalama işlemi yapmak isitiyorum. Konu hakkında yine siz değerli dostlardan yardım bekliyorum. Teşekkürler
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Aşağıdaki kodlar işinizi görür.:cool:
Kod:
Sub kopyala()
Dim sonsat As Long, i As Long
Sheets("YUCESAN").Select
sonsat = Cells(65536, "C").End(xlUp).Row
If sonsat < 10 Then Exit Sub
For i = 10 To sonsat
    If Cells(i, "D").Value = "" Then
        Cells(i, "D").Value = Cells(i, "C").Value
    End If
Next i
MsgBox "K O P Y A L A M A   Y A P I L D I ..!!"
End Sub
 
Üst