• DİKKAT

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

Soru 3 Hücreyi Diğer Sayfadaki 3 Hücre İle Eşitleme

Katılım
2 Ağustos 2010
Mesajlar
3
Excel Vers. ve Dili
2007
Merhaba, acaba bana bir konuda yardımcı olabilir misiniz?
Elimde iki adet fiyat listesi var. Aynı excel dosyası içindeler ve biri Sayfa1 diğeri Sayfa2de
Her bir fiyat listesi de 3 sütundan oluşuyor.
İlk sütunda ÜRÜN KODU ikinci sütunda FİYAT ve son sütunda ise KUR bilgileri yer alıyor.
Satır adedi 1. sayfada 35000 ikinci sayfada 25000 civarındadır.

Ben Sayfa2de yer alan bu ürün bilgilerini Sayfa1de var olan ürün bilgileri ile eşleştirmek ve sonrasında da aralarında fiyat farkı var mı diye her ürünü en sona bir kontrol etmek istiyorum.
Örnek dosya : https://docs.google.com/spreadsheets/d/1tEh1IoM2BSUkXtxkqckp07zCtBhXQwclZu4oL4Pf00o/edit?usp=sharing

Daha önce hücre eşleştirme konularını takip ettim ama verilen makro örnekleri genelde bir hücreyi , aynı değere sahip başka bir hücrenin yanına getiriyordu. Burada ise ÜRÜN KODU değerini dikkate alarak eşleştirme yaparken hemen sağında bulunan FİYAT ve KUR bilgilerini içeren hücreleri de beraberinde alıp diğer sayfa aktarmalı. Özetle 3 sütundan oluşan her iki listeyi de eşleyip 6 sütunlu tek bir liste haline getirmeli ve tabii sonunda 7. bir sütunda da çıkarma işlemi yaparak fiyat farklarını göstermeli. (Makro bilmiyorum, sadece hazır yazılmış makroları kullanabiliyorum ve kendi bilgim de sadece o en sondaki çıkartma formülünü yapmaya yetiyor açıkçası)
Yardımcı olursanız müteşekkir olurum
 
Son düzenleme:
Aşağıdaki makroyu deneyiniz. Verilerin çokluğuna göre tamamlanması uzun sürebilir.

PHP:
Sub karsilastir()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
son1 = s1.Cells(Rows.Count, "A").End(3).Row
son2 = s2.Cells(Rows.Count, "A").End(3).Row
Application.ScreenUpdating = False
    For i = 2 To son1
        If WorksheetFunction.CountIf(s2.Range("A1:A" & son2), s1.Cells(i, "A")) > 0 Then
            s1.Cells(i, "D") = WorksheetFunction.VLookup(s1.Cells(i, "A"), s2.Range("A1:C" & son2), 1, 0)
            s1.Cells(i, "E") = WorksheetFunction.VLookup(s1.Cells(i, "A"), s2.Range("A1:C" & son2), 2, 0)
            s1.Cells(i, "F") = WorksheetFunction.VLookup(s1.Cells(i, "A"), s2.Range("A1:C" & son2), 3, 0)
            s1.Cells(i, "G") = s1.Cells(i, "B") - s1.Cells(i, "E")
        End If
    Next
Application.ScreenUpdating = True
End Sub

Bu arada zaten kodlar karşılaştırıldığından D sütununda aynı kodun tekrar yazılmasına gerek yok bence.
 
Sayın Yusuf44,

Çok teşekkür ederim, mükemmel şekilde çalıştı ve beni büyük bir dertten kurtardınız, sağolun varolun. Bu kadar süratli yanıtladığınız için de ayrıca teşekkür ederim. Saygılarımla...
 
Geri
Üst