Excel Formülünü VBA içinde nasıl yazabilırim

Katılım
4 Temmuz 2017
Mesajlar
21
Excel Vers. ve Dili
ingilizce 2013
Merhaba Arkadaşlar excel'de bir formülüm var bunu vba üzerinde yazmam gerekiyor bu konuda yardımcı olabilir misiniz ?
Formülleri Aşağıda Yazıyorum Teşekkürler İyi Çalışmalar ..

=EĞER(VE(16>$C17;$C17>$C20);($C17-$C20)*$Q$5*$C16;EĞER(VE($C17>15;$C17<31;$C17>$C20);($C17-15)*$Q$6*$C16+(15-$C20)*$Q$5*$C16;EĞER($C17>30;8*Q5*C16+15*Q6*C16+(C17-30)*Q7*C16;EĞER($C17<$C20+1;$C17*$Q$4*$C16;0))))


=EĞER(C25<9;C25*C16*Q5;EĞER(C25<24;8*C16*Q5+(C25-8)*C16*Q6;EĞER(C25>23;C16*8*Q5+15*C16*Q6+(C25-30)*C16*Q7;0)))
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
merhaba

makro kaydet yaparak formulu hucreye yazın . kaydedilen makroya baktiginizda sizin icin kodlara cevrilmis oldugunu goreceksiniz.

iyi calismalar.
 
Katılım
4 Temmuz 2017
Mesajlar
21
Excel Vers. ve Dili
ingilizce 2013
merhaba

makro kaydet yaparak formulu hucreye yazın . kaydedilen makroya baktiginizda sizin icin kodlara cevrilmis oldugunu goreceksiniz.

iyi calismalar.
Oğuz Bey galiba bilgi için Teşekkürler ancak ben beceremedim benim için yapabilir misiniz ?
İyi Çalışmalar
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
Excel versiyonunu İngilizce 2013 demişsiniz ama formül Türkçe.

Developer sekmesinde Code grubunda Record Macro komutunu tıklayın.
formülün bulunduğu hücreyi seçin, F2'ye basın peşinden Enter. Diğer formülün bulunduğu hücreyi seçin tekrar F2+Enter

Record Macro'nun yerine Çıkan Stop Macro'yu tıklayın.

Alt+F11 tuşlarına basarak VBE penceresini açın.
nasıl kullanacaksanız onu göre düzenleyin.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
birinci formülün B1, ikinci formülün C1 hücrelerinde olduğunu varsayarsak şöyle bir kayıt gelecektir.

Kod:
Sub Macro1()
'
' Macro1 Macro
'

'
    Range("B1").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(16>R[15]C3,R[15]C3>R[18]C3),(R[15]C3-R[18]C3)*R5C17*R[14]C3,IF(AND(R[15]C3>15,R[15]C3<31,R[15]C3>R[18]C3),(R[15]C3-15)*R6C17*R[14]C3+(15-R[18]C3)*R5C17*R[14]C3,IF(R[15]C3>30,8*R[3]C[15]*R[14]C[1]+15*R[4]C[15]*R[14]C[1]+(R[15]C[1]-30)*R[5]C[15]*R[14]C[1],IF(R[15]C3<R[18]C3+1,R[15]C3*R4C17*R[14]C3,0))))"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(R[21]C[1]<9,R[21]C[1]*R[12]C[1]*R[1]C[15],IF(R[21]C[1]<24,8*R[12]C[1]*R[1]C[15]+(R[21]C[1]-8)*R[12]C[1]*R[2]C[15],IF(R[21]C[1]>23,R[12]C[1]*8*R[1]C[15]+15*R[12]C[1]*R[2]C[15]+(R[21]C[1]-30)*R[12]C[1]*R[3]C[15],0)))"
    Range("C2").Select
End Sub
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
DİKKAT:

R1C1 notasyonu göreceli hücre referansı kullandığından R ve C değerleri, formüller B1 ve C1'de değil de başka hücrelerde ise farklı rakamlar ile gelecektir.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
A1 notasyonu ile hayat daha kolay olabilir:

buformülleri sırasıyla H1 ve G1 hücrelerine yazdırmak istediğimizi düşünelim.

Kod:
Sub Macro2()
    Range("H1").Formula = "=IF(AND(16>$C17,$C17>$C20),($C17-$C20)*$Q$5*$C16,IF(AND($C17>15,$C17<31,$C17>$C20),($C17-15)*$Q$6*$C16+(15-$C20)*$Q$5*$C16,IF($C17>30,8*Q5*C16+15*Q6*C16+(C17-30)*Q7*C16,IF($C17<$C20+1,$C17*$Q$4*$C16,0))))"
    Range("G1").Formula = "=IF(C25<9,C25*C16*Q5,IF(C25<24,8*C16*Q5+(C25-8)*C16*Q6,IF(C25>23,C16*8*Q5+15*C16*Q6+(C25-30)*C16*Q7,0)))"
End Sub
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
VBA'de formül ayracı olarak ; değil , kullanıldığını gözden kaçırmayalım.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
merhaba.

2 yıl önceki farklı bir ihtiyaç için açılan konudan devam etmeyip kendi ihtiyacınıza göre, ne istediğinizi de tam olarak açıklayan, yeni bir konu açmanızı öneririm.
 
Üst