Birleştirilmiş hücrede toplama işlemi

dgdizayn

Altın Üye
Katılım
7 Mart 2011
Mesajlar
138
Excel Vers. ve Dili
OFFİCE 2019 EN
Altın Üyelik Bitiş Tarihi
04-05-2028
Merhabalar,

Ekteki dosyada, A sütununda aynı sayılar yada kelimeler var ise, aynı kelimelerin yada sayıların olduğu satırda D sütunundaki hücreleri birleştir olayını yapıyor. Bu D sütunundaki butona bastığımızda birleşen hücreler 10,10,10 şeklinde. Bu butona basında birleşen hücreye, birleştirdiği kadar toplasın istiyorum. Örneğin burada 10,10,10 birleşiyor ve burada 30 yazsın istiyorum. Mümkün müdür acaba, teşekkürler.

233993

Makro kodlar

Kod:
Sub Aynı_Hücreleri_Birleştir()
    Dim Rky As Integer, Ert As Integer, a As Integer
  
    Application.DisplayAlerts = False
    On Error Resume Next
    For Rky = Range("A65536").End(3).Row To 1 Step -1
        If Cells(Rky, "D").MergeCells = True Then
            Ert = Rky
        Exit For
    End If
    Next Rky

    For a = Range("A65536").End(3).Row To Ert Step -1
        If Cells(a, "A") = Cells(a - 1, "A") Then
            Range(Cells(a, "D"), Cells(a - 1, "D")).Merge
        End If
    Next a
    Application.DisplayAlerts = True
    Rky = Empty: Ert = Empty: a = Empty
End Sub
 

Ekli dosyalar

  • 18.7 KB Görüntüleme: 4

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Deneyiniz.
Kod:
Sub Aynı_Hücreleri_Birleştir()
    Dim Rky As Integer, Ert As Integer, a As Integer
  
    Application.DisplayAlerts = False
    On Error Resume Next
    For Rky = Range("A65536").End(3).Row To 1 Step -1
        If Cells(Rky, "D").MergeCells = True Then
            Ert = Rky
        Exit For
    End If
    Next Rky

    For a = Range("A65536").End(3).Row To Ert Step -1
        If Cells(a, "A") = Cells(a - 1, "A") Then
        Cells(a - 1, 4) = Cells(a, 4) + Cells(a - 1, 4) 'D sütununda hücreleri birleştirmeden önce hücre değerlerini toplar.
            Range(Cells(a, "D"), Cells(a - 1, "D")).Merge
        End If
    Next a
    Application.DisplayAlerts = True
    Rky = Empty: Ert = Empty: a = Empty
End Sub
 

dgdizayn

Altın Üye
Katılım
7 Mart 2011
Mesajlar
138
Excel Vers. ve Dili
OFFİCE 2019 EN
Altın Üyelik Bitiş Tarihi
04-05-2028
Deneyiniz.
Kod:
Sub Aynı_Hücreleri_Birleştir()
    Dim Rky As Integer, Ert As Integer, a As Integer
 
    Application.DisplayAlerts = False
    On Error Resume Next
    For Rky = Range("A65536").End(3).Row To 1 Step -1
        If Cells(Rky, "D").MergeCells = True Then
            Ert = Rky
        Exit For
    End If
    Next Rky

    For a = Range("A65536").End(3).Row To Ert Step -1
        If Cells(a, "A") = Cells(a - 1, "A") Then
        Cells(a - 1, 4) = Cells(a, 4) + Cells(a - 1, 4) 'D sütununda hücreleri birleştirmeden önce hücre değerlerini toplar.
            Range(Cells(a, "D"), Cells(a - 1, "D")).Merge
        End If
    Next a
    Application.DisplayAlerts = True
    Rky = Empty: Ert = Empty: a = Empty
End Sub
Sn. Muratboz06,

Emeğinize ellerinize sağlık. Bu kadar kısa sürede çözüm için ayrıca teşekkür ederim.
 

dgdizayn

Altın Üye
Katılım
7 Mart 2011
Mesajlar
138
Excel Vers. ve Dili
OFFİCE 2019 EN
Altın Üyelik Bitiş Tarihi
04-05-2028
Merhabalar tekrardan,

Birşey farkettim, A sütununa belli kelimeler yazdığımda aynı olan kelimeleri tespit edip D sütununda birleştiriyor. Örneğin; "kelime cümle" olduğunda sorun yok fakat "kelime-cümle" yada "kelime,cümle" gibi aralarında özel karakterler olduğunda tespit edip birleştiremiyor. Bu konuda bir çözüm bulabilir miyiz acaba.

Teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,274
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu gayet normal bir durum..

Çünkü makronuzda EŞİTLİK sorgulanıyor. Doğal olarak "kelime cümle" ifadesi "kelime-cümle" ifadesi farklı (tire işaretinden dolayı) yorumlanıyor.

Aynı yorumlanması için özel karakterleri boşlukla değiştirebilirsiniz.

Bu satırı;

If Cells(a, "A") = Cells(a - 1, "A") Then

Aşağıdaki gibi değiştirip deneyiniz.

If Replace(Cells(a, "A"), "-", " ") = Replace(Cells(a - 1, "A"), "-", " ") Then

Bu değişim sadece "tire" işareti için çalışacaktır. Başka özel işaretler varsa onlarıda aynı şekilde koda eklemelisiniz.
 

dgdizayn

Altın Üye
Katılım
7 Mart 2011
Mesajlar
138
Excel Vers. ve Dili
OFFİCE 2019 EN
Altın Üyelik Bitiş Tarihi
04-05-2028
Bu gayet normal bir durum..

Çünkü makronuzda EŞİTLİK sorgulanıyor. Doğal olarak "kelime cümle" ifadesi "kelime-cümle" ifadesi farklı (tire işaretinden dolayı) yorumlanıyor.

Aynı yorumlanması için özel karakterleri boşlukla değiştirebilirsiniz.

Bu satırı;

If Cells(a, "A") = Cells(a - 1, "A") Then

Aşağıdaki gibi değiştirip deneyiniz.

If Replace(Cells(a, "A"), "-", " ") = Replace(Cells(a - 1, "A"), "-", " ") Then

Bu değişim sadece "tire" işareti için çalışacaktır. Başka özel işaretler varsa onlarıda aynı şekilde koda eklemelisiniz.

Sn. Korhan Ayhan Bey,

Hızlı ve çözüm odaklı yanıtınız için teşekkür ederim. O halde;

- , / gibi işaretler için If Replace(Cells(a, "A"), "-", ",","/"," ") = Replace(Cells(a - 1, "A"), "-", ",","/"," ") Then

şeklinde yapıyorum, doğru mudur.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,274
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hayır doğru değildir.

İç içe yazmalısınız..

Replace(Replace(......
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,274
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi yapmalısınız..

C++:
If Replace(Replace(Replace(Cells(a, "A"), "-", " "), ",", " "), "/", " ") = Replace(Replace(Replace(Cells(a - 1, "A"), "-", " "), ",", " "), "/", " ") Then
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,274
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Küçük bir düzeltme yaptım. Tekrar deneyiniz.
 
Üst