• DİKKAT

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

Yinelenen faturaları tek satırda toplama

Katılım
19 Nisan 2013
Mesajlar
25
Excel Vers. ve Dili
2003
Merhaba,
Ekteki çalışmada faturalardaki ürünlere göre kayıt yapıldığı için aynı fatura numarasından birden fazla var. Bunu koşullu biçimlendirmeden yinelenenler bularak tespit ettim. Ancak bunları tek satıra matrah ve KDV olarak toplamam gerek. Çünkü İnternet vergi dairesine yüklerken yinelenen faturaları kabul etmiyor.
Teşekkürler yardımlarınız için.
 

Ekli dosyalar

Yinelenenlerin KDV oranları farklıysa ne olacak?

Sonuçta istediğiniz listenin nasıl olması gerekiyor?
 
Aşağıdaki kodları bir modüle kopyalayıp deneyiniz. Kodları son verdiğiniz(#3 nolu mesaj) örnek dosyaya göre hazırladım. Örnek dosyanızda Sayfa2'deki tüm bilgileri silin, sadece sayfa 1'in başlık satırını kopyalayıp bu sayfada ilk satıra yapıştırın. Sonra da makroyu çalıştırın:
Kod:
Sub fatura()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")

    son1 = s1.Cells(Rows.Count, "B").End(3).Row

    s1.Select
    s1.Columns("B:B").Select
    Selection.Copy
    s2.Select
    s2.[B1].Select
    ActiveSheet.Paste
    s2.[B1].Select
    Application.CutCopyMode = False
    son2 = s2.Cells(Rows.Count, "B").End(3).Row
    s2.Range("$A$1:$L$" & son1).RemoveDuplicates Columns:=2, Header:=xlYes
    son3 = s2.Cells(Rows.Count, "B").End(3).Row
    
    For i = 2 To son3
        s2.Cells(i, "C") = WorksheetFunction.VLookup(s2.Cells(i, "B"), s1.Range("$B$1:$L$" & son1), 2, 0)
        s2.Cells(i, "D") = WorksheetFunction.VLookup(s2.Cells(i, "B"), s1.Range("$B$1:$L$" & son1), 3, 0)
        s2.Cells(i, "E") = WorksheetFunction.VLookup(s2.Cells(i, "B"), s1.Range("$B$1:$L$" & son1), 4, 0)
        s2.Cells(i, "F") = WorksheetFunction.VLookup(s2.Cells(i, "B"), s1.Range("$B$1:$L$" & son1), 5, 0)
        s2.Cells(i, "G") = WorksheetFunction.SumIf(s1.Range("$B$1:$B$" & son1), s2.Cells(i, "B"), s1.Range("$G$1:$G$" & son1))
        s2.Cells(i, "H") = WorksheetFunction.VLookup(s2.Cells(i, "B"), s1.Range("$B$1:$L$" & son1), 7, 0)
        s2.Cells(i, "I") = WorksheetFunction.SumIf(s1.Range("$B$1:$B$" & son1), s2.Cells(i, "B"), s1.Range("$I$1:$I$" & son1))
        s2.Cells(i, "K") = WorksheetFunction.SumIf(s1.Range("$B$1:$B$" & son1), s2.Cells(i, "B"), s1.Range("$K$1:$K$" & son1))
    Next

End Sub
 
Teşekkür ederim Yusuf Bey,
asıl veri dosyamda bu makroyu çalıştırırken bu makroda değişiklik yapacağım yer var mı?
Denedim hata verdi de. Makroyu tam bilmiyorum anladığım kadarıyla yaptım.
 
Eğer sütunlarınız aynı ise sadece sayfa adlarını örnek dosyanızdaki gibi Sayfa1 ve Sayfa2 yapmanız yeterlidir. Ya da makroda Sayfa1 ve Sayfa2'yi dosyanızdaki sayfa adlarına göre değiştirebilirsiniz. Sayfa1'de asıl listeniz olsun, Sayfa2'de ise sadece başlık satırı olsun.
 
Çok teşekkür ederim.
 
Geri
Üst