• DİKKAT

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

Aynı Yevmiye Maddesindeki Hesap Kodlarının Birleştirilmesi

Katılım
9 Haziran 2015
Mesajlar
13
Excel Vers. ve Dili
excel 2013_2016
iyi günler dilerim herkese.
Aynı yevmiye maddesinde olan hesap kodlarının aralarında “–“ tire işareti konularak birleştirilmesine çalışıyorum. Ancak Makro ile hızlı olacağı kanısındayım. sizden bu koduda yardım istiyorum. örnek dosyayı ekledim.

Örneğin: O sütununa “birleştirilmiş hesap kodları” başlığı açılıp
1 nolu yevmiye maddesinde olan 100, 101,103,500 hesap kodları aynı yevmiye maddesinin olduğu tüm satırlarda “100-101-103-500” şeklinde yer alacak.

Dolu olan satır sayısına göre bu işlemi yapması mümkün mü? Örneğin bazılarında 10.000 satır bazılarında 300.000 satır veri oluyor.
Son olarak aynı yevmiye maddesinde aynı hesap kodu birden fazla varsa bir tane yazılması mümkün mü? Örneğin 2 nolu yevmiye maddesinde 2 kere 100 hesap kodu var . birleştirince “100-100-700” değil “100-700” şeklinde olması gereksiz tekrarı önler.

Teşekkür ederim şimdiden.
 

Ekli dosyalar

Aşağıdaki kodları bir modüle kopyalayıp deneyiniz:

Kod:
Sub yevmiyekod()
son = Cells(Rows.Count, "C").End(3).Row
Range("O2:O" & son) = ""
For i = 2 To son
    If WorksheetFunction.CountIf(Range("C1:C" & i), Cells(i, "C")) = 1 Then
            For j = i To son
                If Cells(j, "C") = Cells(i, "C") Then
                    If Cells(i, "O") = "" Then
                        Cells(i, "O") = Cells(j, "D")
                    Else
                        Cells(i, "O") = Cells(i, "O") & "-" & Cells(j, "D")
                    End If
                Else
                    j = son
                End If
            Next
    Else
        Cells(i, "O") = WorksheetFunction.VLookup(Cells(i, "C"), Range("C1:O" & i - 1), 13, 0)
    End If
Next

End Sub
 
YUSUF44 bey teşekkür ederim cevap için iş nedeniyle geç döndüm kusuruma bakmayın. Çalışmayı başka dosyalarda da denedim başaırılı olmuş ellerinize sağlık. Ancak mesajda “aynı yevmiye maddesinde aynı hesap kodu birden fazla varsa bir tane yazılması mümkün mü? Örneğin 2 nolu yevmiye maddesinde 2 kere 100 hesap kodu var . birleştirince “100-100-700” değil “100-700” şeklinde olması gereksiz tekrarı önler.” Yazdığım kısım eksik kalmış sanırım. Denemelerde bir yevmiye maddesinde aynı hesap kodundan 20 tane varsa hepsini alıyor. Bu konuda da yardımcı olursanız sevinirim. Teşekkürler şimdiden.
 
Aşağıdaki gibi deneyin:

Kod:
Sub yevmiyekod()
son = Cells(Rows.Count, "C").End(3).Row
Range("O2:O" & son) = ""
For i = 2 To son
    If WorksheetFunction.CountIf(Range("C1:C" & i), Cells(i, "C")) = 1 Then
            For j = i To son
                If Cells(j, "C") = Cells(i, "C") Then
                    If WorksheetFunction.CountIfs(Range("C1:C" & j), Cells(j, "C"), Range("D1:D" & j), Cells(j, "D")) = 1 Then
                        If Cells(i, "O") = "" Then
                            Cells(i, "O") = Cells(j, "D")
                        Else
                            Cells(i, "O") = Cells(i, "O") & "-" & Cells(j, "D")
                        End If
                    End If
                Else
                    j = son
                End If
            Next
    Else
        Cells(i, "O") = WorksheetFunction.VLookup(Cells(i, "C"), Range("C1:O" & i - 1), 13, 0)
    End If
Next

End Sub
 
istediğim gibi olmuş ellerinizze sağlık.
 
Geri
Üst