• DİKKAT

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

İç içe If ve or fonksiyonları

Katılım
2 Ekim 2006
Mesajlar
37
Excel Vers. ve Dili
Office 2000 Türkçe
Arkadaşlar merhaba
İç içe yapmış olduğum formül normalde excelde çalışıyor. Fakat bunu VBA'da nasıl yapabilir. Çünki oldukça fazla büyütüyor dosyanın boyutunu

selamlar

=EĞER(EBOŞSA($A2);"";EĞER(YADA($B2="IKL-2500";$B2="IKL-2500 KK";$B2="IKL-2000 M";$B2="IKL-2000 M KK";$B2="IKL-2000";$B2="IKL-2000 KK";$B2="IKL-3000";$B2="IKL-3000 KK";$B2="IKL-3200";$B2="IKL-3200 KK");BÖLÜMLER!$C$120-('SEVKİYAT PROGRAMI'!$E2);BÖLÜMLER!C120-0))
 
Merhaba,

Fonksiyonları buraya yazacağınıza ne yapmak istediğinizi doğrudan açıklasaydınız sanırım daha çabuk yanıt alırdınız.
 
Haklısınız ama daha kafa karıştırır diye bu şekilde yazmıştım.

Yapmak istediğim, öncelikle a2 hücresi boş ise herhangi bir işlem yapılmadan h2 hücresini boş bırakmak. Eğer a2 hücresi dolu ve b2 hücresindeki değerler IKL-2500,IKL-2500 KK,IKL-2000 değerlerine eşit ise bölümler sayfasında c120 hücresinde mevcut olan stok değerini e2 hücresinde bulunanan adet değerinden çıkartarak h2 hücresine yazmak. Eğer IKL-2500 gibi yukarıda verilen değerlere eşit değilse h2 hücresine direk olarak bölümler sayfasında c120 hücresinde mevcut olan stok miktarı yazılacaktır.

Ama bu işlemi makro ile yapmak istiyorum. Çünki şuan dosyanın boyutu 7 Mbayt civarında. Bu formülleri girmeden önce ise 2,5 Mbayt civarındaydı.
Benim için asıl gerekli olan iç içe if ve or komutlarını VBA'da nasıl kullanabilirim. Biraz uğraştım ama sonuç alamadım.

Saygılar
 
Kimse yardım etmeyince kendim hallettim artık. Ekte bahsetmiş olduğum if, elseif ve or komutlarının birlikte kullanıldığı makrolar yapıldı. Hücrelerdeki formüller kaldırıldı. Önceki mesajdaki dosya makrosuz formül ile yapılmıştır.

Yinede Çok teşekkürler.

İyi akşamlar
 
Yapmak istediğim, öncelikle a2 hücresi boş ise herhangi bir işlem yapılmadan h2 hücresini boş bırakmak. Eğer a2 hücresi dolu ve b2 hücresindeki değerler IKL-2500,IKL-2500 KK,IKL-2000 değerlerine eşit ise bölümler sayfasında c120 hücresinde mevcut olan stok değerini e2 hücresinde bulunanan adet değerinden çıkartarak h2 hücresine yazmak. Eğer IKL-2500 gibi yukarıda verilen değerlere eşit değilse h2 hücresine direk olarak bölümler sayfasında c120 hücresinde mevcut olan stok miktarı yazılacaktır.

if range("A2").valu="" then
range("H2").value=""
else
if range("B2").value="IKL-2500" and range("B2").value="IKL-2500 KK" and range("B2").value="IKL-2000" then

range("H2").value=sheets("BÖLÜMLER").range("C120").value - range("E2").value
else
range("H2").value=sheets("BÖLÜMLER").range("C120").value
end if
end if

Bir denermisin şu cümleyi...
 
Merhabalar aşağıda iç içe if fonksiyonu ile ilgili örnek mevcuttur.

Burada yapılmak istenilen sirasip1 değeri öncelikle boş olmamalı, eğer boş degilse formu aşağı indiriyor ve siparistur değerine bakıyor. Bu değer "SAC" ise belirtilen makroları, sarf malzeme ise diğer makroları çalıştıryor. Elseif komutuyla istediğin kadar if'i iç içe yerleştirebilirsin. Sadece en iyi takip etmen gereken eksik end if olmamalı



Private Sub siplistaktarbt_Click()
If siparisfrm.sirasip1.Value <> "" Then
siparisfrm.Hide
If siparisfrm.siparistur.Value = "SAC" Then
Application.Run "'Malzeme Listesi.xls'!sip_form_aktar"
Application.Run "'Malzeme Listesi.xls'!sip_form_duzen"
Unload siparisfrm
siparisfrm.Show
ElseIf siparisfrm.siparistur.Value = "SARF MALZEME" Then
Application.Run "'Malzeme Listesi.xls'!sip_form_aktar_sarf"
Application.Run "'Malzeme Listesi.xls'!sip_form_aktar"
Unload siparisfrm
siparisfrm.Show
Else
End If
Else
End If
End Sub
 
Geri
Üst