• DİKKAT

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

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
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.
 
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
 
İ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
 
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
 
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.
 
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:
sayin xxcell yine de yardımlarınız için teşekürler..
 
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.
 
Geri
Üst