Soru toplama macrosunda sıra numarasını da dikkate aldırma

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Arkadaşlar ekli dosyamda detaylı anlattım.

Teşekkürler..
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Deneyip sonucu bildirin lütfen.
Kod:
Sub ToplamAL()

    Dim i As Long, _
        j As Long, _
        d As Variant
    
    Columns("H:H").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("H1") = "TUTAR"
    Columns("I:I").Delete Shift:=xlToLeft
    
    d = Range("A2").Value
    j = 2
    For i = 2 To Cells(Rows.Count, "A").End(3).Row + 1
        If Not Cells(i, "A") = d Then
            Cells(j, "H") = "=SUM(D" & j & ":D" & i - 1 & ")"
            If Not j = i - 1 Then
                With Range("H" & j & ":H" & i - 1)
                    .HorizontalAlignment = xlRight
                    .VerticalAlignment = xlTop
                    .MergeCells = True
                End With
            End If
            j = i
            d = Cells(i, "a")
        End If
    Next i
    
End Sub
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Merhaba,
Deneyip sonucu bildirin lütfen.
Kod:
Sub ToplamAL()

    Dim i As Long, _
        j As Long, _
        d As Variant
   
    Columns("H:H").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("H1") = "TUTAR"
    Columns("I:I").Delete Shift:=xlToLeft
   
    d = Range("A2").Value
    j = 2
    For i = 2 To Cells(Rows.Count, "A").End(3).Row + 1
        If Not Cells(i, "A") = d Then
            Cells(j, "H") = "=SUM(D" & j & ":D" & i - 1 & ")"
            If Not j = i - 1 Then
                With Range("H" & j & ":H" & i - 1)
                    .HorizontalAlignment = xlRight
                    .VerticalAlignment = xlTop
                    .MergeCells = True
                End With
            End If
            j = i
            d = Cells(i, "a")
        End If
    Next i
   
End Sub
işlem görüyor hocam teşekkürler ancak form düzen ayarlarını bozmakta

240775
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Kodları revize ettim deneyiniz.

Kod:
Sub ToplamAL()

    Dim i As Long, _
        j As Long, _
        d As Variant
    Columns("H:H").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("H1") = "TUTAR"
    Columns("I:I").Delete Shift:=xlToLeft
    
    d = Range("A2").Value
    j = 2
    For i = 2 To Cells(Rows.Count, "B").End(3).Row + 1
        If Not Cells(i, "A") = d Then
            Cells(j, "H") = "=SUM(D" & j & ":D" & i - 1 & ")"
            Cells(j, "H").HorizontalAlignment = xlCenter
            If Not j = i - 1 Then
                With Range("H" & j & ":H" & i - 1)
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .MergeCells = True
                End With
            End If
            j = i
            d = Cells(i, "a")
        End If
    Next i
End Sub
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Merhaba.
Kodları revize ettim deneyiniz.

Kod:
Sub ToplamAL()

    Dim i As Long, _
        j As Long, _
        d As Variant
    Columns("H:H").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("H1") = "TUTAR"
    Columns("I:I").Delete Shift:=xlToLeft
   
    d = Range("A2").Value
    j = 2
    For i = 2 To Cells(Rows.Count, "B").End(3).Row + 1
        If Not Cells(i, "A") = d Then
            Cells(j, "H") = "=SUM(D" & j & ":D" & i - 1 & ")"
            Cells(j, "H").HorizontalAlignment = xlCenter
            If Not j = i - 1 Then
                With Range("H" & j & ":H" & i - 1)
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .MergeCells = True
                End With
            End If
            j = i
            d = Cells(i, "a")
        End If
    Next i
End Sub
Olmuş teşekkürler hocam desteğiniz için. Birde hücre yapılarını bozmasa çok daha iyi olurdu. Toplam alınan alanı aşağıdaki gibi bozuyor

240781
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Deneyiniz.
B sütunundaki satır sayısına göre işlem yapılmaktadır.
Eğer tablonuzun altında B sütununda başka veriler varsa onları da dikkate alacağından farklı biçimlendirme sonucu ortaya çıkabilir.


Kod:
Sub ToplamAL()

    Dim i As Long, _
        j As Long, _
        d As Variant
    Application.ScreenUpdating = False
    Columns("H:H").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("H1") = "TUTAR"
    Columns("I:I").Copy
    Range("H1").PasteSpecial xlPasteFormats
    Range("G1").Activate
    Columns("I:I").Delete Shift:=xlToLeft
    
    d = Range("A2").Value
    j = 2
    For i = 2 To Cells(Rows.Count, "B").End(3).Row + 1
        If Not Cells(i, "A") = d Then
            Cells(j, "H") = "=SUM(D" & j & ":D" & i - 1 & ")"
            Cells(j, "H").HorizontalAlignment = xlCenter
            If Not j = i - 1 Then
                With Range("H" & j & ":H" & i - 1)
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .MergeCells = True
                End With
            End If
            j = i
            d = Cells(i, "a")
        End If
    Next i
    Application.ScreenUpdating = True
End Su
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Deneyiniz.
B sütunundaki satır sayısına göre işlem yapılmaktadır.
Eğer tablonuzun altında B sütununda başka veriler varsa onları da dikkate alacağından farklı biçimlendirme sonucu ortaya çıkabilir.


Kod:
Sub ToplamAL()

    Dim i As Long, _
        j As Long, _
        d As Variant
    Application.ScreenUpdating = False
    Columns("H:H").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("H1") = "TUTAR"
    Columns("I:I").Copy
    Range("H1").PasteSpecial xlPasteFormats
    Range("G1").Activate
    Columns("I:I").Delete Shift:=xlToLeft
  
    d = Range("A2").Value
    j = 2
    For i = 2 To Cells(Rows.Count, "B").End(3).Row + 1
        If Not Cells(i, "A") = d Then
            Cells(j, "H") = "=SUM(D" & j & ":D" & i - 1 & ")"
            Cells(j, "H").HorizontalAlignment = xlCenter
            If Not j = i - 1 Then
                With Range("H" & j & ":H" & i - 1)
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .MergeCells = True
                End With
            End If
            j = i
            d = Cells(i, "a")
        End If
    Next i
    Application.ScreenUpdating = True
End Su
Teşekkürler hocam ancak neden B sütununa göre işlem yapıyor? Orjinal formumda başka veri var.Önemli olan A sütunundaki numaralara göre işlem yapması. A sütunundaki numara farklılıklarına göre işlem yapmalı
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Çünkü örnek dosyanızda A16 ve A17 de değer varken B,C ve D 16,17. satırlarda veri yok.
Yani en son değer 15. satırda var.
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kodu çalıştırdığınızda, istediğiniz sonucu alamıyor musunuz?
Eğer istediğiniz sonucu alamıyorsanız orijinal dosyanızı ekleyin kontrol edelim.
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Kodu çalıştırdığınızda, istediğiniz sonucu alamıyor musunuz?
Eğer istediğiniz sonucu alamıyorsanız orijinal dosyanızı ekleyin kontrol edelim.
Hocam sanırım olmadı bu sefer?
 
Üst