• DİKKAT

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

rakamları makro ile toplama

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,545
Excel Vers. ve Dili
2021 LTSC TR
A1 hücresinde rakam yazılı.(2.596,34 gibi) Düğme yardımı ile aktar yapınca E1 hücresine (2.596,34) yazacak.
İkinci defa aktarma yapınca E1 hücresine (2.596,34+2596,34) yazacak.
Üçüncü ve sonra ki tüm aktarmalarda "+" diye ekleyerek devam edecek
Böyle bir makroya ihtiyacım var.
Yardımcı olabilir misiniz?
 
Merhaba.

-- Toplama işleminin sonucunu E1 hücreye yazdırmak için;
Kod:
[E1] = [E1] + [A1]
-- Metin olarak (2.596,34+2596,34) gibi yazdırmak için ise;
Kod:
[E1] = "(" & Format([A1], "#,##0.00") & "+" & Replace(Replace([E1], "(", ""), ")", "") & ")"
gibi olması lazım. Yeni eklenenin sola ekleneceğini varsaydım.
 
Son düzenleme:
Macro ile

Kod:
Sub ilave_toplam()
   
    Range("E1").Select
    eski = Range("e1").Formula
    If eski = "" Then
    eski = "="
    End If
   
    ilave = Range("a1").Value
   
    ActiveCell.FormulaR1C1 = eski & "+" & ilave
   
End Sub
 
Ömer Bey ve Lark bey
Her ikinize de teşekkür ederim.
Yukarıda makroyu A1:A367 E1:E367 aralığında kullanılacak şekilde zamanınız olursa revize edebilir misiniz?
 
Son düzenleme:
Tekrar merhaba.
İstediğiniz;
-- matematiksel toplama ise mavi satırı,
-- verileri aralara + ekleyerek birleştirmek ise kırmızı satırı
kullanın, ancak diğer renkli satırı silin.
.
Kod:
[FONT="Arial Narrow"]For satır = 1 To 367
[COLOR="Blue"]    If Cells(satır, "A") <> "" Then Cells(satır, "E") = Cells(satır, "E") + Cells(satır, "A")[/COLOR]
[COLOR="Red"]    If Cells(satır, "A") <> "" Then Cells(satır, "E") = "(" & Format(Cells(satır, "A"), "#,##0.00") & "+" & Replace(Replace(Cells(satır, "E"), "(", ""), ")", "") & ")"[/COLOR]
    Cells(satır, "A") = ""
Next[/FONT]
 
Ömer Bey
Formül çubuğunda (değer+değer+değer) şeklinde görünüp de hücrede toplam değer şeklinde olabilir mi?
Neden derseniz hücrenin genişliği (değer+değer+değer) olunca bayağı büyüdü.
Onun haricinde bir sıkıntı yok.

Yardımlarınız için de teşekkür ederim
 
Bildiğim kadarıyla mümkün değil,
bence (değer+değer+değer) şeklindeki yapıyı F sütununa alıp,
matematiksel toplamı da E sütununa aldırmak en pratik şey olur.
Böylece E sütununda toplam değeri, F sütununda da bunların hangi sayıların toplamı olduğunu görmüş olursunuz diye düşünüyorum.
.
Kod:
[FONT="Arial Narrow"]For satır = 1 To 367
    If Cells(satır, "A") <> "" Then
        Cells(satır, "[B][COLOR="Blue"]E[/COLOR][/B]") = Cells(satır, "[B][COLOR="Blue"]E[/COLOR][/B]") + Cells(satır, "A")
        Cells(satır, "[B][COLOR="Blue"]F[/COLOR][/B]") = "(" & Format(Cells(satır, "A"), "#,##0.00") & "+" & Replace(Replace(Cells(satır, "[B][COLOR="Blue"]F[/COLOR][/B]"), "(", ""), ")", "") & ")"
        Cells(satır, "A") = ""
    End If
Next[/FONT]
 
Ömer Bey
Ellerine sağlık. Çok çok teşekkür ederim.
Hakkınızı helal edin
 
Aşağıdaki gibi dener misiniz:
Kod:
Sub toplam()
For i = 1 To 367
    If Cells(i, "E") = "" Then
        Cells(i, "E").Formula = "=" & Cells(i, "A")
    Else
        Cells(i, "E").Formula = Cells(i, "E").Formula & "+" & Cells(i, "A")
    End If
Next
End Sub
 
Yusuf Bey
Kod:
Cells(i, "E").Formula = Cells(i, "E").Formula & "+" & Cells(i, "A")
Kısmında hata var. DEBUG değil de END ile devam edersem Hata kısmında toplama yapıyor. Ama yukarıda arz ettiğim kod hata veriyor.
 
Bende hata vermemişti. Hatalı haliyle bir örnek dosya yüklerseniziyi oolu.
 
367'ye kadar demiştiniz ama 10-367. satırlar boş. Boş olduğu için bu hata oluşuyor. Kodu aşağıdaki gibi değiştirin, boş hücre kontrolü yapıyor:
Kod:
Sub toplam()
For i = 1 To 367
    If Cells(i, "A") = "" Then GoTo 10
    If Cells(i, "E") = "" Then
        Cells(i, "E").Formula = "=" & Cells(i, "A")
    Else
        Cells(i, "E").Formula = Cells(i, "E").Formula & "+" & Cells(i, "A")
    End If
10:
Next
End Sub
 
ustam sıkıntısız bir şekilde işlem görüyor.
Ellerine sağlık
 
Geri
Üst