• DİKKAT

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

Toplama İşlemi

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
777
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
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

  • örnek1.jpg
    örnek1.jpg
    223.2 KB · Görüntüleme: 11
Resime dikkat edildiğinde toplanamayan sütunlar sola hizalı, toplanabilenler sağa hizalı duruyor.
Toplanamayan sütunlardaki verileriniz METİN formatında olabilir mi?
 
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")
 
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
 
Evet CInt kullanmadan çözüldü.
 
Geri
Üst