• DİKKAT

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

Iki sütunu makro ile karşılaştırma

Katılım
8 Temmuz 2014
Mesajlar
120
Excel Vers. ve Dili
Office 2016 Türkçe
İnternette bulduğum bir makroyu uyarlayarak iki sayfadaki iki ayrı sütunu karşılaştırmak istedim. Ama istediğim gibi çalıştıramadım. Yardımcı olabilir misiniz? Nerede hata yapıyorum?

Yapmak istediğim şey Rapor sayfasında B sütununda olan ama Rapor2 sayfasında B sütununda olmayan kaç değer olduğu sonucunu Msgbox ile almak.

Farklı şekillerde de yapılabilir belki ama bu yöntemi başka çalışmalarımda kullanmıştım çok hızlı çalışıyor. 10.000'lerce satır karşılaştırmam gerekiyor.

Teşekkürler.
 

Ekli dosyalar

Merhaba.

Mesaj dışında;
-- olmayan sayıların listesini RAPOR2 sayfasına listelemeyi de istiyorsanız
(ben C sütunu olarak düşündüm) mavi satırları kullanın (kırmızıları silin),
-- sadece adet öğrenmek için kırmızı satırları kullanın (mavileri silin).

Kod:
[FONT="Arial Narrow"]Sub rapor()
Set S1 = Sheets("RAPOR"):Set S2 = Sheets("RAPOR2")
For say = 3 To S1.Range("B" & Rows.Count).End(3).Row
[COLOR="Blue"]If WorksheetFunction.CountIf(S2.Range("B:B"), S1.Cells(say, "B")) = 0 Then
say2 = say2 + 1: S2.Cells(S2.[C65536].End(3).Row + 1, 3) = S1.Cells(say, 2)
End If[/COLOR]
[COLOR="Red"]If WorksheetFunction.CountIf(S2.Range("B:B"), S1.Cells(say, "B")) = 0 Then say2 = say2 + 1[/COLOR]
Next:MsgBox say2
End Sub[/FONT]
 
Merhaba.

Mesaj dışında;
-- olmayan sayıların listesini RAPOR2 sayfasına listelemeyi de istiyorsanız
(ben C sütunu olarak düşündüm) mavi satırları kullanın (kırmızıları silin),
-- sadece adet öğrenmek için kırmızı satırları kullanın (mavileri silin).

Kod:
[FONT="Arial Narrow"]Sub rapor()
Set S1 = Sheets("RAPOR"):Set S2 = Sheets("RAPOR2")
For say = 3 To S1.Range("B" & Rows.Count).End(3).Row
[COLOR="Blue"]If WorksheetFunction.CountIf(S2.Range("B:B"), S1.Cells(say, "B")) = 0 Then
say2 = say2 + 1: S2.Cells(S2.[C65536].End(3).Row + 1, 3) = S1.Cells(say, 2)
End If[/COLOR]
[COLOR="Red"]If WorksheetFunction.CountIf(S2.Range("B:B"), S1.Cells(say, "B")) = 0 Then say2 = say2 + 1[/COLOR]
Next:MsgBox say2
End Sub[/FONT]

Çok teşekkürler Ömer Bey.
Bu haliyle her anlamda ihtiyacımı karşılıyor.
 
Geri
Üst