İç 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))
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,594
Excel Vers. ve Dili
Ofis 365 Türkçe
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.
 
Katılım
2 Ekim 2006
Mesajlar
37
Excel Vers. ve Dili
Office 2000 Türkçe
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
 
Katılım
2 Ekim 2006
Mesajlar
37
Excel Vers. ve Dili
Office 2000 Türkçe
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
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,290
Excel Vers. ve Dili
Microsoft Office 2019 English
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...
 
Katılım
2 Ekim 2006
Mesajlar
37
Excel Vers. ve Dili
Office 2000 Türkçe
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
 
Üst