Formüle Loop Yerleştirmek

Katılım
14 Ekim 2010
Mesajlar
8
Excel Vers. ve Dili
2003 türkçe
Arkadaşlar Merhabalar,

VB ile bir makro yazmak istiyorum.

Yazacağım makroda bir formülüm olacak , misal Topla olsun.

Sayfa adlarımda, "1,2,3..." şeklinde sıralı rakamlar.

Topla formülümü "1" sayfasının a1 sütununa yazıyorum ve "2" sayfasındaki belli değerlerin toplamını almasını istiyorum.

ActiveCell.FormulaR1C1 = "=SUM('2'!R[11]C[-2],'2'!R[3]C[-3],'2'!R[11]C[-3])"

bunu bu formülle yapıyorum.

Ancak benim yapmak istediğim, sayfa adlarını bir loop ile halletmek.

Yani;

For i=1 to 5
ActiveCell.FormulaR1C1 = "=SUM('i'!R[11]C[-2],'i'!R[3]C[-3],'i'!R[11]C[-3])"
Next i

gibisinden bir formülle işimi çözmek istiyorum.

Ancak bir türlü formüle loopu yerleştiremedim.

Yardımcı olabilecek var mı ?
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,737
Excel Vers. ve Dili
Excel 2019 Türkçe
Bu şekilde deneyin.
Kod:
For i = 1 To 3
ActiveCell.FormulaR1C1 = "=SUM(" & i & "!R[11]C[-2]," & i & "!R[3]C[-3]," & i & "!R[11]C[-3])"
Next i
 
Katılım
14 Ekim 2010
Mesajlar
8
Excel Vers. ve Dili
2003 türkçe
Bu şekilde deneyin.
Kod:
For i = 1 To 3
ActiveCell.FormulaR1C1 = "=SUM(" & i & "!R[11]C[-2]," & i & "!R[3]C[-3]," & i & "!R[11]C[-3])"
Next i
Denedim ancak, hem her seferinde güncelleştirilecek değer soruyor, hemde formül hücrede "=TOPLA([3]Sayfa3!C3;[3]Sayfa3!D3;[3]Sayfa3!E3)" şeklinde görülüyor ve doğru değeri hesaplamıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,737
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi deneyiniz.

Kod:
Sub FORMUL_YAZ()
    Dim i As Integer
    For i = 1 To 5
        Sheets(CStr(i)).Range("A1").FormulaR1C1 = "=SUM('" & i & "'!R[11]C[-2],'" & i & "'!R[3]C[-3],'" & i & "'!R[11]C[-3])"
    Next
End Sub
 
Katılım
14 Ekim 2010
Mesajlar
8
Excel Vers. ve Dili
2003 türkçe
Aşağıdaki gibi deneyiniz.

Kod:
Sub FORMUL_YAZ()
    Dim i As Integer
    For i = 1 To 5
        Sheets(CStr(i)).Range("A1").FormulaR1C1 = "=SUM('" & i & "'!R[11]C[-2],'" & i & "'!R[3]C[-3],'" & i & "'!R[11]C[-3])"
    Next
End Sub
Teşekkür ediyorum. Çalıştırdım.

Peki son bir şey sormak istiyorum.

Satır ve Sütunları loopla belirlemek için ne yapmam gerekiyor.

Yani R[3]C[4] yerine "i" değişkeniyle RC[i+2] gibi...
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,737
Excel Vers. ve Dili
Excel 2019 Türkçe
Kod:
Sub FORMUL_YAZ()
    Dim i As Integer
    x = 10
    xx = 2
    y = -2
    yy = -3
    For i = 1 To 3
            Sheets(CStr(i)).Range("A1").FormulaR1C1 = "=SUM('" & i & "'!R[11]C[-2],'" & i & "'!R[3]C[-3],'" & i & "'!R[11]C[-3])" '1.Formül

            Sheets(CStr(i)).Range("A2").FormulaR1C1 = "=SUM('" & i & "'!R[" & x & "]C[" & y & "],'" & i & "'!R[" & xx & "]C[" & yy & "],'" & i & "'!R[" & x & "]C[" & yy & "])" '2.Formül

    Next
End Sub
 
Katılım
14 Ekim 2010
Mesajlar
8
Excel Vers. ve Dili
2003 türkçe
Kod:
Sub FORMUL_YAZ()
    Dim i As Integer
    x = 10
    xx = 2
    y = -2
    yy = -3
    For i = 1 To 3
            Sheets(CStr(i)).Range("A1").FormulaR1C1 = "=SUM('" & i & "'!R[11]C[-2],'" & i & "'!R[3]C[-3],'" & i & "'!R[11]C[-3])" '1.Formül

            Sheets(CStr(i)).Range("A2").FormulaR1C1 = "=SUM('" & i & "'!R[" & x & "]C[" & y & "],'" & i & "'!R[" & xx & "]C[" & yy & "],'" & i & "'!R[" & x & "]C[" & yy & "])" '2.Formül

    Next
End Sub
Teşekkürler, istediğim buydu ....
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,737
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Aslında R1C1 sitili yerine normal formül yazma yöntemini kullanırsanız bu kadar karmaşadan kurtulursunuz.
 
Üst