Excell de A ve B sütunları Karşılaştırma Makro

Katılım
15 Ocak 2013
Mesajlar
116
Excel Vers. ve Dili
2010 Turkce
Merhaba arkadaşlar yeniyim aranızda benim şöyle bir işleme ihtiyacım var

ekteki listede A ve B sütunlarında çeşitli rakamlar var ben örnek olsun diye az yazdım normalde A ve B sütunlarında ayrı ayrı 1800 adet sayısal verim var. Ben bu iki sütunu karşılaştırmak istiyorum yani B sutununda olup A da olmayan rakamları c sutununda göstermesini istiyorum yani;

A
111
123
233

B
111
123
233
354
444


B sutunundaki 354 ve 444 numaralarını c ye yazmasını istiyorum. Bu şekilde makro yazabilecek veya yardımcı olabilecek arkadaşım var mıdır? Çok sevinirim bana yardımcı olursanız. Örneğim ekte mevcuttur. Formda aradım fakat ilgili makro bulamadım. Teşekkür ederim şimdiden.
 

Ekli dosyalar

Orion1

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

Ofis-2010-TR 32 Bit
Dosyanız ektedir.:cool:
Kod:
Sub varyok59()
Dim sat1 As Long, sat2 As Long, i As Long, sat3 As Long
Range("C:C").ClearContents
Application.ScreenUpdating = False
sat1 = Cells(Rows.Count, "A").End(xlUp).Row
sat2 = Cells(Rows.Count, "B").End(xlUp).Row
For i = 1 To sat2
    If WorksheetFunction.CountIf(Range("A1:A" & sat1), Cells(i, "B").Value) = 0 Then
        sat = sat + 1
        Cells(sat, "C").Value = Cells(i, "B").Value
    End If
Next i
Application.ScreenUpdating = True
MsgBox "İşlem Tamamlanmıştır." & vbLf & "evrengizlen@hotmail.com", _
    vbOKOnly + vbInformation, Application.UserName

End Sub
 

Ekli dosyalar

Katılım
17 Ekim 2011
Mesajlar
490
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhabalar

Sayın Orion1

Benimde buna benzer bir konum var aşağıda.
Şayet tamamına bakabilirseniz çok sevinirim.
Benim konumda eşleşenler yan sütuna aktarılacak.
Eşleşmeyenler ise benzerleri ile eşleştirmeye çalışılacak.
Sağdan soldan ve Ortadan olmak kaydı ile.
http://www.excel.web.tr/f50/ayny-olanlary-aktar-benzeyenleri-e-le-tir-ba-t124233.html

Tamamına bakamaz iseniz arkadaşa yazdığınız koda bir ilave yapabilir isinez oda olur.
Aynı olanları Yandaki boş sütuna aktarsın.
 

Orion1

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

Ofis-2010-TR 32 Bit
Merhabalar

Sayın Orion1

Benimde buna benzer bir konum var aşağıda.
Şayet tamamına bakabilirseniz çok sevinirim.
Benim konumda eşleşenler yan sütuna aktarılacak.
Eşleşmeyenler ise benzerleri ile eşleştirmeye çalışılacak.
Sağdan soldan ve Ortadan olmak kaydı ile.
http://www.excel.web.tr/f50/ayny-olanlary-aktar-benzeyenleri-e-le-tir-ba-t124233.html

Tamamına bakamaz iseniz arkadaşa yazdığınız koda bir ilave yapabilir isinez oda olur.
Aynı olanları Yandaki boş sütuna aktarsın.
Ekli dosyayı inceleyiniz.:cool:
A sütunda varsa onu c sütununa aktarıyor.:cool:
Kod:
If WorksheetFunction.CountIf(Range("A1:A" & sat1), Cells(i, "B").Value) [B][COLOR="Red"]>= 1[/COLOR][/B] Then
 

Ekli dosyalar

Katılım
15 Ocak 2013
Mesajlar
116
Excel Vers. ve Dili
2010 Turkce
çok teşekkür ederim
 
Son düzenleme:
Katılım
15 Ocak 2013
Mesajlar
116
Excel Vers. ve Dili
2010 Turkce
Dosyanız ektedir.:cool:
Kod:
Sub varyok59()
Dim sat1 As Long, sat2 As Long, i As Long, sat3 As Long
Range("C:C").ClearContents
Application.ScreenUpdating = False
sat1 = Cells(Rows.Count, "A").End(xlUp).Row
sat2 = Cells(Rows.Count, "B").End(xlUp).Row
For i = 1 To sat2
    If WorksheetFunction.CountIf(Range("A1:A" & sat1), Cells(i, "B").Value) = 0 Then
        sat = sat + 1
        Cells(sat, "C").Value = Cells(i, "B").Value
    End If
Next i
Application.ScreenUpdating = True
MsgBox "İşlem Tamamlanmıştır." & vbLf & "evrengizlen@hotmail.com", _
    vbOKOnly + vbInformation, Application.UserName

End Sub



Eyvallah çok teşekkür ederim tam istediğim gibi emeğine sağlık yapmış olduğun her iki dosyada işimi çok gördü. son olarak bir sorum olacak bu iki dosyadaki makroyuda tek bir exele alıp sadece sayfa1 ve sayfa2 şeklinde kullanmak istedim fakat sorun yaşadım hata verdi acaba nasıl aynı excellde sayfa1 ve sayfa2 şeklinde kullanabilirim? Yardımların için çok teşekkürler.

Örneğin ilk mesajında bana yaptığın makroyu sayfa1 de sonraki mesajında arkadaşıma yaptığın makroyu sayfa2 de nasıl kullanabilirim
 

Orion1

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

Ofis-2010-TR 32 Bit
Eyvallah çok teşekkür ederim tam istediğim gibi emeğine sağlık yapmış olduğun her iki dosyada işimi çok gördü. son olarak bir sorum olacak bu iki dosyadaki makroyuda tek bir exele alıp sadece sayfa1 ve sayfa2 şeklinde kullanmak istedim fakat sorun yaşadım hata verdi acaba nasıl aynı excellde sayfa1 ve sayfa2 şeklinde kullanabilirim? Yardımların için çok teşekkürler.

Örneğin ilk mesajında bana yaptığın makroyu sayfa1 de sonraki mesajında arkadaşıma yaptığın makroyu sayfa2 de nasıl kullanabilirim
örnek dosya yollayıp üzerinde açıklama yapınız.
 
Katılım
17 Ekim 2011
Mesajlar
490
Excel Vers. ve Dili
Excel 2003 - Türkçe
Ekli dosyayı inceleyiniz.:cool:
A sütunda varsa onu c sütununa aktarıyor.:cool:
Kod:
If WorksheetFunction.CountIf(Range("A1:A" & sat1), Cells(i, "B").Value) [B][COLOR="Red"]>= 1[/COLOR][/B] Then

Merhabalar Evren Bey.

Hiç tasvip etmediğim bir şeyi bizzat kendim yapıyorum.:(
"Başka başlığa yeni dosyalarla müdahil olmak"

Kod için çok teşekkür ederim.
C sütununa attıklarını A ve B sütunlarından silsin diyecektim unuttum.:kafa:

Sonrasında kendim şunu yapmayı düşünüyorum.
Kalanları sıralayıp benzerleri ile eşleştirmeye çalışacağım.
Bunun içinde "benzeyenler ile eşleştir" konulu bir link var ise elaltında paylaşırsanız çok makbule geçecek.
(sağdan, soldan ve ortadan)
burada detaylı bir açıklamam mevcut.
http://www.excel.web.tr/f50/ayny-ola...a-t124233.html

Saygılarımla.
 
Katılım
15 Ocak 2013
Mesajlar
116
Excel Vers. ve Dili
2010 Turkce
örnek dosya yollayıp üzerinde açıklama yapınız.
hocam teşekkür ederim ilgin için olayı çözdüm. Hatayı ben yapıyormuşum. Makro kodunu alırken eksik aldğımdan kaynakllıymış çözdüm şimdi takır takır çalışıyor. Çok teşekkür ederim desteğin için.
 
Katılım
8 Temmuz 2014
Mesajlar
120
Excel Vers. ve Dili
Office 2016 Türkçe
Dosyanız ektedir.:cool:
Kod:
Sub varyok59()
Dim sat1 As Long, sat2 As Long, i As Long, sat3 As Long
Range("C:C").ClearContents
Application.ScreenUpdating = False
sat1 = Cells(Rows.Count, "A").End(xlUp).Row
sat2 = Cells(Rows.Count, "B").End(xlUp).Row
For i = 1 To sat2
    If WorksheetFunction.CountIf(Range("A1:A" & sat1), Cells(i, "B").Value) = 0 Then
        sat = sat + 1
        Cells(sat, "C").Value = Cells(i, "B").Value
    End If
Next i
Application.ScreenUpdating = True
MsgBox "İşlem Tamamlanmıştır." & vbLf & "evrengizlen@hotmail.com", _
    vbOKOnly + vbInformation, Application.UserName

End Sub
Orion1 e ait bu For döngüsünün açıklamasını yapabilir misiniz?

Kod:
"sat1 = Cells(Rows.Count, "A").End(xlUp).Row"
Burada en sondan yukarıya doğru nasıl bir mantıkla hareket ediyor? Ve rows.Count un satır alanında olması neye yarıyor?

Kod:
"If WorksheetFunction.CountIf(Range("A1:A" & sat1), Cells(i, "B").Value) = 0 "
Neden Function.CountIf? Özellikle bu kısımlara kafam takıldı. Ama genel olarak tüm satırların mantığını açıklayabilirseniz çok makbule geçer.
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Cells(a, b) ifadesi a satırı ile b sütununun kesişimi olan hücre demektir.

Cells(1,1) 1. Satır, 1. Sütun kesişimi yani A1 hücresini ifade eder.

Cells(10,4) ise aynı mantıkla D10 hücresini ifade eder.

Rows.Count ifadesi sayfadaki toplam satır sayısıdır.

Cells(Rows.Count, "a") ifadesi A sütunundaki son hücreyi ifade eder (A1milyon küsür)

End(xlup) ifadesi o hücrede iken CTRL + yukarı ok işleminin karşılığıdır. A sütunundaki son hücreye gelip CTRL + yukarı ok yaparsanız o sütunda ki son dolu hücreye geçersiniz.

.Row ifadesi ise kendisinden önce belirtilen hücrenin satır numarasını verir.

İfadenin tamamı kısaca A sütunundaki son dolu hücrenin satır numarasını bulmak için yazılmış ve bu değer sat1 değişkenine atanmış.

Diğer soruyla ilgili ise bazı fonksiyonlar Vba kodu olarak varken bazılarıysa Excel fonksiyonudur ve WorksheetFunction olarak belirtilmesi gerekir. Örneğin SOLDAN formülünün Vba'daki karşılığı Left'tir tek başına kullanılır ama Eğersay formülü Vba'da yoktur, WorksheetFunction olarak belirtilmesi gerekir. Mantığını çok fazla bilmiyorum ancak kod yazarken WorksheetFunction kullanmadığımda hata verirse WorksheetFunction kullanarak deniyorum.
 
Üst