Toplama İşlemi

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Merhaba arkadaşlar.

Bir tabloda sütun toplamlarını son satırın bir alt satırına toplamlarını aldırmak istiyorum ama bazı sütunların toplamını alırken, bazılarını almıyor. Çalıştığım sayfanın resmini ve örnek kodları ekledi. Yardımcı olabilir misiniz.

brd.Cells(SonSatirb1 + 2, 3).Value = "Toplam : "
brd.Cells(SonSatirb1 + 2, 3).HorizontalAlignment = xlRight
For S1 = 4 To 21
brd.Cells(SonSatirb1 + 2, S1).Value = WorksheetFunction.Sum(brd.Range(brd.Cells(6, S1), brd.Cells(SonSatirb1 + 2, S1)))
Next S1
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Resime dikkat edildiğinde toplanamayan sütunlar sola hizalı, toplanabilenler sağa hizalı duruyor.
Toplanamayan sütunlardaki verileriniz METİN formatında olabilir mi?
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Resime dikkat edildiğinde toplanamayan sütunlar sola hizalı, toplanabilenler sağa hizalı duruyor.
Toplanamayan sütunlardaki verileriniz METİN formatında olabilir mi?
Mesela Aktif satırın 12 sütununa kaydedilen veriler, aktif satırın 11. sütunundaki verilerden, aktif satırın 19. sütunundaki verileri çıkartma işlemi sonucunda oluyor. Aktif satırın 11. sütununda toplama işlemini yapıyor. 11 ve 19 sütunları sayı biçiminde olmasaydı 12 sütununa çıkarma işleminin sonucunu sayı biçiminde yazar mı bilmiyorum.

ActiveCell.Offset(0, 12).Value = ActiveCell.Offset(0, 11).Value - ActiveCell.Offset(0, 19).Value


Tüm sayfanın kodları aşağıdaki gibi.

ActiveCell.Offset(0, 3).Value = g15_31
ActiveCell.Offset(0, 4).Value = g1_14
ActiveCell.Offset(0, 5).Value = tops
ActiveCell.Offset(0, 2).Value = WorksheetFunction.RoundUp(ActiveCell.Offset(0, 5).Value / 7.5, 0)
ActiveCell.Offset(0, 6).Value = esü
ActiveCell.Offset(0, 7).Value = ysü
tutarg15_31 = ActiveCell.Offset(0, 6).Value * Format(ActiveCell.Offset(0, 3).Value, "#,##0.00")
tutarg1_14 = ActiveCell.Offset(0, 7).Value * Format(ActiveCell.Offset(0, 4).Value, "#,##0.00")
ActiveCell.Offset(0, 8).Value = Format(tutarg15_31 + (tutarg1_14, "#,##0.00")
ActiveCell.Offset(0, 9).Value = Format(ActiveCell.Offset(0, 8).Value * sab.Range("l11").Value, "#,##0.00")
ActiveCell.Offset(0, 10).Value = Format(ActiveCell.Offset(0, 8).Value + CInt(ActiveCell.Offset(0, 9).Value), "#,##0.00")
ActiveCell.Offset(0, 15).Value = Format(ActiveCell.Offset(0, 8).Value * sab.Range("l12").Value, "#,##0.00")
matrah = ActiveCell.Offset(0, 8).Value - ActiveCell.Offset(0, 15).Value
ActiveCell.Offset(0, 11).Value = Format(matrah * sab.Range("l9").Value, "#,##0.00")
'----------------------------------------------------------------------------------------------------------------------------
'AGİ HESAPLAMA
agim = Format(sab.Range("n18").Value * 12, "#,##0.00")
agioran = Format(agim * UserForm10.TextBox7.Value, "#,##0.00")
ActiveCell.Offset(0, 19).Value = Format(agioran * (0.15 / 12) / 100, "#,##0.00")
If ActiveCell.Offset(0, 11).Value < ActiveCell.Offset(0, 20).Value Then
ActiveCell.Offset(0, 19).Value = ActiveCell.Offset(0, 11).Value
Else: End If
'-----------------------------------------------------------------------------------------------------------------------------
ActiveCell.Offset(0, 12).Value = ActiveCell.Offset(0, 11).Value - ActiveCell.Offset(0, 19).Value
ActiveCell.Offset(0, 13).Value = Format(ActiveCell.Offset(0, 8).Value * sab.Range("l10").Value, "#,##0.00")
ActiveCell.Offset(0, 14).Value = ActiveCell.Offset(0, 9).Value
ActiveCell.Offset(0, 16).Value = Format(ActiveCell.Offset(0, 14).Value + CInt(ActiveCell.Offset(0, 15).Value), "#,##0.00")
ActiveCell.Offset(0, 17).Value = Format(ActiveCell.Offset(0, 12).Value + CInt(ActiveCell.Offset(0, 13).Value) + CInt(ActiveCell.Offset(0, 14).Value) + CInt(ActiveCell.Offset(0, 15).Value), "#,##0.00")
ActiveCell.Offset(0, 18).Value = Format(ActiveCell.Offset(0, 10).Value - ActiveCell.Offset(0, 17).Value, "#,##0.00")
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
1. Exceldeki hücre formatlarınız için kodları yormanıza gerek yok. Sütunları Excelde formatlarsanız karışıklıklardan kurtulursunuz

2. Aşağıdaki satırda hatalı yazılım var
ActiveCell.Offset(0, 8).Value = Format(tutarg15_31 + (tutarg1_14, "#,##0.00")

3. Birçok yerde CInt kullanmışsınız. Excel sayfasından referansalıp CInt kullanmanız gereksiz olmuş. Zaten formatları düzgün ayarladığınızda bunlara gerekkalmayacak

Yazdıklarımı iyi okuyup anlayıp kodlarınza uyarladığınızda sorun kalmayacaktır
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Evet CInt kullanmadan çözüldü.
 
Üst