makro da if formülü yapmak

Katılım
4 Mayıs 2007
Mesajlar
234
Excel Vers. ve Dili
office 2007 64 bit
office 2010 64 bit
Altın Üyelik Bitiş Tarihi
14-09-2023
bu komut sheet2 F5 hücresindedir.
=IF(E5="MÜNF";IF(C5=2;120;0)+IF(C5=1;90;0)+IF(C5=3;165;0)+IF(D5=2;140;0)+IF(D5=1;105;0)+IF(D5=3;192;0);0)+IF(E5="MÜNFİN";IF(C5=2;100;0)+IF(C5=1;75;0)+IF(C5=3;140;0)+IF(D5=2;120;0)+IF(D5=1;90;0)+IF(D5=3;165;0);0)

ve benim istedigim F5 hücresindeki bu formülü makroda kullanmak ve f5 hücresinde herhangi bir if formülünün olmamasını istiyorum...
yardımlarınız için şimdiden teşekürler.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Aşağıdaki kodları deneyiniz.çalışması lazım..

Kod:
Sub Makro3()
    DEGER1 = Evaluate("IF(E5=""MÜNF"",IF(C5=2,120,0)+IF(C5=1,90,0)+IF(C5=3,165,0)+IF(D5=2,140,0)+IF(D5=1,105,0)+IF(D5=3,192, 0),0)")
    DEGER = Evaluate("IF(E5=""MÜNFİN"",IF(C5=2,100,0)+IF(C5=1,75,0)+ IF(C5=3,140,0)+IF(D5=2,120,0)+IF(D5=1,90,0)+IF(D5= 3,165,0),0)")
    Range("F5") = DEGER1 + DEGER2
End Sub
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
İlgili sayfaya aşağıdaki kodu yazarsanız işinizi görecektir.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
[F5] = IIf([E5] = "MÜNF", IIf([C5] = 2, 120, 0) + IIf([C5] = 1, 90, 0) + IIf([C5] = 3, 165, 0) + IIf([D5] = 2, 140, 0) + IIf([D5] = 1, 105, 0) + IIf([D5] = 3, 192, 0), 0) + IIf([E5] = "MÜNFİN", IIf([C5] = 2, 100, 0) + IIf([C5] = 1, 75, 0) + IIf([C5] = 3, 140, 0) + IIf([D5] = 2, 120, 0) + IIf([D5] = 1, 90, 0) + IIf([D5] = 3, 165, 0), 0)
End Sub
 
Katılım
4 Mayıs 2007
Mesajlar
234
Excel Vers. ve Dili
office 2007 64 bit
office 2010 64 bit
Altın Üyelik Bitiş Tarihi
14-09-2023
evet oldu ama run demem gerekiyor yazdığımda örnegin ben münf 1 yazdığım anda F5 e bunu atmasını istiyorum yani run demeden öyle olur mu aceba
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
Worksheet_Change olayı zaten ilgili sayfada herhangi bir hücre değiştiğinde
kendiğilinden çalışır. Lütfen kodu doğru sayfaya yazıp yazmadığınızı denetleyiniz.
 
Katılım
4 Mayıs 2007
Mesajlar
234
Excel Vers. ve Dili
office 2007 64 bit
office 2010 64 bit
Altın Üyelik Bitiş Tarihi
14-09-2023
Sayin xxcell ben şöyle yaptım olmadı
Sub ODA_FİYATI ()
Private Sub Worksheet_Change(ByVal Target As Range)
[F5] = IIf([E5] = "MÜNF", IIf([C5] = 2, 120, 0) + IIf([C5] = 1, 90, 0) + IIf([C5] = 3, 165, 0) + IIf([D5] = 2, 140, 0) + IIf([D5] = 1, 105, 0) + IIf([D5] = 3, 192, 0), 0) + IIf([E5] = "MÜNFİN", IIf([C5] = 2, 100, 0) + IIf([C5] = 1, 75, 0) + IIf([C5] = 3, 140, 0) + IIf([D5] = 2, 120, 0) + IIf([D5] = 1, 90, 0) + IIf([D5] = 3, 165, 0), 0)
End Sub

olmamasının nedeni aceba ben sheet2 deki E5 e = sheet1!h5 , D5 e = sheet1!J5 ve C5 = sheet1!I5 demiştim ondan olabilir mi aslinda Sheet1 de değişince sheet2 deki değişiyordu ve F5 e fiyatı yazıyordu sorun bundan kaynaklamış olabilir mi sayin xxcell.
 
Son düzenleme:
Katılım
4 Mayıs 2007
Mesajlar
234
Excel Vers. ve Dili
office 2007 64 bit
office 2010 64 bit
Altın Üyelik Bitiş Tarihi
14-09-2023
sayin xxcell yine de yardımlarınız için teşekürler..
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
Yazdığın şekilde yapamazsın.

1. İlgili dosyayı aç
2. alt + f11 ile vba erkanına geç
3. Project penceresinde ilgili dosyayı görmen gerekir.
Ağaç yapısının içinde ilgili sayfayı bulup çift tıkla
4. Sağ tarafa kod ekranına ilgili sayfayla ilgili kod yazacağın beyaz sayfa gelmiş olmalı
5. aşağıdaki kodu ekrana kopyala

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
[F5] = IIf([E5] = "MÜNF", IIf([C5] = 2, 120, 0) + IIf([C5] = 1, 90, 0) + IIf([C5] = 3, 165, 0) + IIf([D5] = 2, 140, 0) + IIf([D5] = 1, 105, 0) + IIf([D5] = 3, 192, 0), 0) + IIf([E5] = "MÜNFİN", IIf([C5] = 2, 100, 0) + IIf([C5] = 1, 75, 0) + IIf([C5] = 3, 140, 0) + IIf([D5] = 2, 120, 0) + IIf([D5] = 1, 90, 0) + IIf([D5] = 3, 165, 0), 0)
End Sub
6. bundan sonra ilgili sayfada bir değişiklik yaptığında makro otomatik olarak çalışacak ve f5 hücresini yenileyecektir.
 
Üst