Toplam makrosu geliştirme hk.

Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
Arkadaşlar merhaba,

Kod:
Sub toplam()



[J6:J20].ClearContents
son = Cells(Rows.Count, "J").End(3).Row
With Range("J6:J" & son)
Range("J6:J20").Value = Evaluate("=G6+H6*I6")


End With
End Sub
Şöyle bir makrom var. İlgili bölüme =G6+H6*I6 formulasyonunu yazıyor ama ben rakam olarak yazdırmak istiyorum. Bir örnek verecek olursam.

G6= 10
H6= 5
I6= 5

Sonuçu şekilde yazdırmak istiyorum → =10+5*5 yani formül içinde rakamlar yazsın. Bu yapılabilir mi yardımlarınızı bekliyorum.

Saygılarımla.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,806
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
aşağıdaki kod ile yapabilirsiniz.

Kod:
Sub toplam()
    Dim Bak As Range
    For Each Bak In Range("J6:J20")
        Bak.Value = "'=" & Range("G" & Bak.Row) & "+" & Range("H" & Bak.Row) & "*" & Range("I" & Bak.Row)
    Next
End Sub
 
Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
Merhaba sayın dalgalıkur,

Bir kaç modifikasyon yapabilir miyiz, hücre başına ' ekliyor dolayısıyla formülasyon oluşmuyor. Birde çektiği hücrelerde (herhangi birinde) sadece rakam varsa bu işlemi gerçekleştirebilir mi? Rakam yoksa boş bıraksın gibi.
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,806
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu deneyin.

Kod:
Sub toplam()
    Dim Bak As Range
    For Each Bak In Range("J6:J20")
        If IsNumeric(Range("G" & Bak.Row)) And IsNumeric(Range("H" & Bak.Row)) And IsNumeric(Range("I" & Bak.Row)) And _
            Not IsEmpty(Range("G" & Bak.Row)) And Not IsEmpty(Range("H" & Bak.Row)) And Not IsEmpty(Range("I" & Bak.Row)) Then
            Bak.Value = "=" & Range("G" & Bak.Row) & "+" & Range("H" & Bak.Row) & "*" & Range("I" & Bak.Row)
        Else
            Bak.Value = ""
        End If
    Next
End Sub
 
Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
Şöyle bir problem oluyor bunu formulasyon olarak yazmadığı için başına ' işareti ekliyor. Hani =5+5+5 ENTER dersin formüle girer ya bu şekilde yapabilir miyiz?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,806
Excel Vers. ve Dili
2019 Türkçe
En son yazdığım kodlar formülün başına "'" işareti eklemiyor.
Hücreye =5+5+5 yazıyor. Bu yazılan değer bir formül olduğu için sanki Enter'e basılmış gibi hemen hesaplama yapıyor hücrede 15 değerini gösteriyor.

Siz tam olarak ne istiyorsunuz ben anlayamadım.
 
Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
Tam olarak sizin yazdığınız şeyi istiyorum ama yapmıyor neden anlamadım hata veriyor. Run time error 1004 diyor. Debug diyince

Bak.Value = "=" & Range("G" & Bak.Row) & "+" & Range("H" & Bak.Row) & "*" & Range("I" & Bak.Row)

satırını sarı yakıyor.
 
Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
Oldu şimdi teşekkür ederim. Metin biçimlendirmesi var diye hücrelerde sorun oluyormuş hocam. Kolaylıklar dilerim.
 
Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
İlave birşey sorabilir miyim, ilgili rakam ondalık sayı olursa yine hata verdiğini farkettim macronun (yani 5,05 gibi) modifikasyon yapılabilir mi?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,806
Excel Vers. ve Dili
2019 Türkçe
Formül içindeki virgülü ayraç olarak gördüğünden kaynaklanıyor.

Aşağıdaki kodları kullanın.

Kod:
Private Sub btmTopla_Click()
    Dim Bak As Range
    Dim G As String, H  As String, I  As String
    For Each Bak In Range("J6:J20")
        If IsNumeric(Range("G" & Bak.Row)) And IsNumeric(Range("H" & Bak.Row)) And IsNumeric(Range("I" & Bak.Row)) And _
            Not IsEmpty(Range("G" & Bak.Row)) And Not IsEmpty(Range("H" & Bak.Row)) And Not IsEmpty(Range("I" & Bak.Row)) Then
            G = Replace(Range("G" & Bak.Row), ",", ".")
            H = Replace(Range("H" & Bak.Row), ",", ".")
            I = Replace(Range("I" & Bak.Row), ",", ".")
            Bak.Formula = "=" & G & "+" & H & "*" & I
        Else
            Bak.Value = ""
        End If
    Next
End Sub
 
Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
Çok teşekkür ederim tıkır tıkır çalışıyor şuan :) Kolay gelsin.
 
Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
Tekrar merhaba sayın dalgalikur

Şöyle bir geliştirme yapılabilir mi çektiği hücrelerin içinde de formulasyon olsa. Varsa hücre içeriğini de string olarak alsa. Örnekte anlatmaya çalıştım.

=13+25+20+3*3 gibi.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,806
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Aşağıdaki kodlar ile olur.

Kod:
Private Sub btmTopla_Click()
    Dim Bak As Range
    Dim G As String, H  As String, I  As String
    For Each Bak In Range("J6:J20")
        If IsNumeric(Range("G" & Bak.Row)) And IsNumeric(Range("H" & Bak.Row)) And IsNumeric(Range("I" & Bak.Row)) And _
            Not IsEmpty(Range("G" & Bak.Row)) And Not IsEmpty(Range("H" & Bak.Row)) And Not IsEmpty(Range("I" & Bak.Row)) Then
            G = WorksheetFunction.Substitute(Range("G" & Bak.Row).Formula, "=", "")
            H = WorksheetFunction.Substitute(Range("H" & Bak.Row).Formula, "=", "")
            I = WorksheetFunction.Substitute(Range("I" & Bak.Row).Formula, "=", "")
            Bak.Formula = "=" & "(" & G & ")" & "+" & "(" & H & ")" & "*" & "(" & I & ")"
        Else
            Bak.Value = ""
        End If
    Next
End Sub
 
Katılım
11 Ağustos 2015
Mesajlar
80
Excel Vers. ve Dili
2016
TÜRKÇE
Altın Üyelik Bitiş Tarihi
23-07-2020
Hocam çok teşekkür ederim.
 
Üst