• DİKKAT

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

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)))
 
merhaba

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

iyi calismalar.
 
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
 
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.
 
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
 
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.
 
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
 
VBA'de formül ayracı olarak ; değil , kullanıldığını gözden kaçırmayalım.
 
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.
 
Geri
Üst