• DİKKAT

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

Liste Birleştirme

Katılım
14 Aralık 2016
Mesajlar
100
Excel Vers. ve Dili
2010 VB
Merhabalar herkese kolay gelsin.Bir sorum olacaktı.Şimdi benim 2 tane listem var ekteki fotoğrafta belirttim 2 listemi de inşaat ve tesisat adında.Bu listemde; "Sıra(B sutunu)","Mağ.No(C Sutunu)","Mağaza Adı(D Sutunu)" ve "İnşaat-Tesisat İşleri toplam tutarı(E sutunu)" isimlerinde 4 sutunum var.bu 2 listeyi birleştirmek istiyorum fakat inşaat ve tesisat listemde aynı mağazalar olabiliyor o yüzden mağazayı bir kere ekleyip inşaat ve tesiat tutarlarını yanyana yazmasını istiyorum örnek listedeki gibi.bunu makro ile nasıl yapabilirim yardımcı olabilecek var mı?
 

Ekli dosyalar

  • inşaat.PNG
    inşaat.PNG
    25 KB · Görüntüleme: 5
  • tesisat.PNG
    tesisat.PNG
    26 KB · Görüntüleme: 6
  • toplam liste.PNG
    toplam liste.PNG
    13.1 KB · Görüntüleme: 5
  • örnek liste.PNG
    örnek liste.PNG
    13.7 KB · Görüntüleme: 5
Merhaba;
Örnek resim yerine örnek dosya paylaşırsanız daha çabuk ve net çözüm bulabilirsiniz.
 
Kod:
Sub test()
    Set s1 = Sheets("İcmal GENEL")
    Set s2 = Sheets("İcmal (İNŞAAT)")
    Set s3 = Sheets("İcmal (TESİSAT)")
    son2 = s2.Cells(Rows.Count, 3).End(3).Row
    son3 = s3.Cells(Rows.Count, 3).End(3).Row
    
    ReDim w(1 To son2 + son3, 1 To 4)
    With CreateObject("Scripting.Dictionary")
        For i = 8 To son2
            ky = s2.Cells(i, 3).Value
            Say = Say + 1
            .Item(ky) = Say
            w(Say, 1) = ky
            w(Say, 2) = s2.Cells(i, 4).Value
            w(Say, 3) = s2.Cells(i, 5).Value
        Next i
        
        For i = 8 To son3
            ky = s3.Cells(i, 3).Value
            If Not .exists(ky) Then
                Say = Say + 1
                .Item(ky) = Say
                w(Say, 1) = ky
                w(Say, 2) = s3.Cells(i, 4).Value
                w(Say, 4) = s3.Cells(i, 5).Value
            Else
                w(.Item(ky), 4) = s3.Cells(i, 5).Value
            End If
        Next i
        s1.Range("C8:F74").ClearContents
        s1.Range("C8").Resize(Say, 4).Value = w
    End With
    
End Sub
 
çok teşekkür ediyorum ellerinize sağlık. İyi günler.
 
Geri
Üst