exceldeki formüllerin makro yolu ile yapılması

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
arkadaşlar yaptığım excel tablosunda aşağıdaki gibi çok uzun formüller var, bu formülleri forumdaki siz üstadlarımın yardımı ile yapana kadar çok uykusuz kaldım, bu formüllerin bir çırpıda yanlışlıkla silinmesini veya proğramı kullanan kişilerin değiştirmesini istemiyorum, bu nedenle bu formülleri makroya uyarlamak istiyorum, bu konuda yardımlarınız bekliyorum, saygılar.

=(EĞER($B8="";"";EĞER($B8="çocuğu";($E$3-$D$7)/$G$2;EĞER($B8="gelini/damadı";$G$6;EĞER($B8="torunun gelini/damadı";$G$7;EĞER(VE($B8="torununun torunu";EĞERSAY((mirascı1);$C8)>0);(torunhisse1);EĞER(VE($B8="torununun torunu";EĞERSAY((mirascı2);$C8)>0);(torunhisse2);"")))))&EĞER(VE($B8="torununun torunu";EĞERSAY((mirascı3);$C8)>0);(torunhisse3);EĞER(VE($B8="torununun torunu";EĞERSAY((mirascı4);$C8)>0);(torunhisse4);EĞER(VE($B8="torununun torunu";EĞERSAY((mirascı5);$C8)>0);(torunhisse5);EĞER(VE($B8="torununun torunu";EĞERSAY((mirascı6);$C8)>0);(torunhisse6);""))))&EĞER(VE($B8="torunu";EĞERSAY((torun1);$C8)>0);(hisse1);EĞER(VE($B8="torunu";EĞERSAY((torun2);$C8)>0);(hisse2);""))&EĞER(VE($B8="torunu";EĞERSAY((torun3);$C8)>0);(hisse3);EĞER(VE($B8="torunu";EĞERSAY((torun4);$C8)>0);(hisse4);EĞER(VE($B8="torunu";EĞERSAY((torun5);$C8)>0);(hisse5);EĞER(VE($B8="torunu";EĞERSAY((torun6);$C8)>0);(hisse6);""))))&EĞER(VE($B8="torunu";EĞERSAY((torun7);$C8)>0);(hisse7);EĞER(VE($B8="torunu";EĞERSAY((torun8);$C8)>0);(hisse8);EĞER(VE($B8="torunu";EĞERSAY((torun9);$C8)>0);(hisse9);"")))))*1
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
if ve makro

arkadaşım makroyla formül yazmak excel'e göre biraz daha kolaydır fakat bu kadar uzun formül yine bu uzunluğa sahip olacağı için sana şöyle bir dosya göndereyim ve açıklama:
eğer yerine "if" kullanabilirsin
eğersay yerine "countif" kullanabilirsin
ve yerine "and" kullanabilirsin
formüle şöyle başla
sub my_formula ( )
d = worksheetfunction.if.......
arkadaşım hücre başvurularını şöyle yaz:
range("b2:b3") veya tek hücre için range("b2")
ve parantezler excel'de olduğu gibi aynıdır...
=(EĞER($B8="";"";EĞER($B8="çocuğu";($E$3-$D$7)/$G$2 örnekteki fonksiyon makro ile şu şekilde yazılabilir :
sub example ( )
d = worksheetfunction.if(range("b8").value = "","",if(range("b8").text = "çocuğu",(range("e3").value - range("d7").value)/range("g2").value
range("a1").value = d
end sub
 
Son düzenleme:

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
Sayın emrexcel123 ilginiz için teşekkür ederim, makroyu tarif ettiğiniz gibi yapmaya çalışacağım ama takılacağım yerler çok olacağa benziyor, bu durumda, sizi biraz rahatsız edeceğim galiba, bana yardımcı olursunuz umarım, saygılar.
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
Sayın emrexcel123 aşağıdaki gibi bir formül yazdım ama olmadı, şu anda formüle bakıp gülümsediğinizi ve bu gezgin-49 ile işimiz çok zor dediğinizi duyuyor gibi oldum, eh siz üstadlar bizim gibi acemileri eğitmek zorundasınız, zira ustanın büyüklüğü çırağından belli olur diye bir ata sözü var. saygılar.



Sub my_formula()
d = worksheetfunction.if(range("b8").value = "","",if(range("b8").text = "çocuğu",(range("e3").value - range("d7").value)/range("g2").value
Range("a1").Value = d
IF(B8="";"";IF(B8="çocuğu";(E3-D7)/G2;IF(B8="gelini/damadı";G6;IF(B8="torunun gelini/damadı";G7;IF(AND(B8="torununun torunu";countif((mirascı1);C8)>0);(torunhisse1);IF(AND(B8="torununun torunu";countif((mirascı2);C8)>0);(torunhisse2);" ")))))&IF(AND(B8="torununun torunu";countif((mirascı3);C8)>0);(torunhisse3);IF(VE(B8="torununun torunu";countif((mirascı4);C8)>0);(torunhisse4);IF(AND(B8="torununun torunu";countif((mirascı5);C8)>0);(torunhisse5);IF(AND(B8="torununun torunu";countif((mirascı6);C8)>0);(torunhisse6);""))))&IF(AND($B8="torunu";countif((torun1);C8)>0 );(hisse1);IF(AND(B8="torunu";countif((torun2);C8)>0);(hisse2);""))&IF(AND(B8="torunu";countif((torun3);C8)>0);(hisse3);IF(AND(B8="torunu";countif((torun4);C8)>0);(hisse4);IF(AND(B8="torunu ";countif((torun5);C8)>0);(hisse5);IF(AND(B8="torunu";countif((torun6);C8)>0);(hisse6);""))))&IF(AND(B8="torunu";countif((torun7);C8)>0);(hisse 7);IF(AND(B8="torunu";countif((torun8);C8)>0)
;( hisse8);EĞER(VE($B8="torunu";EĞERSAY((torun9);$C8) >0);(hisse9);"")))))
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Şu şekilde olabilir

Formül çok uzun daha uzman arkadaşlar yazarsa iyi olur.

If [B8]="" Then [C8]=""
If [B8]="Çocuğu" Then [C8]=[E3]-[D7]/[G2]
If [B8]="Gelini/Damadı" Then [C8]=[G7]

Şeklinde yazmaya çalışırsanız!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Eğer amacınız formüllü hücrelerin silinmesini önlemek ise makroya ihtiyacnız olduğunu düşünmüyorum.

Bu işlem için dosyanızdaki formüllü sayfanızı açın. Tüm hücreleri seçip BİÇİM menüsünden HÜCRELER seçeneğini seçip ekrana gelen pencerede KORUMA bölümünü seçin. Buradaki KİLİTLİ seçeneğinin işaretini kaldırın ve tamam dedikten sonra aynı sayfada formüllü hücreleri seçin. (Formüllü hücreleri tek seferde seçebilmek için F5 tuşuna basıp ÖZEL bölümünü seçin ve buradanda FORMÜLLER seçeneğini seçip tamam tuşuna basın.)

Formüllü hücreleri seçtikten sonra BİÇİM menüsünden HÜCRELER seçeneğini seçip ekrana gelen pencerede KORUMA bölümünü seçin. Buradaki KİLİTLİ seçeneğini işaretledikten (GİZLİ seçeneğinide işaretlerseniz formüller formül çubuğunda görüntülenmez.) sonra sayfayı koruma altına alın. (Bu işlemide ARAÇLAR-KORUMA-SAYFAYI KORU menüsünden yapabilirsiniz.

Umarım faydası olur.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
işte ekte

sn costcontrol'ün dediği gibi kilitlemeli excel dosyasında sadece kullanıcı tarafından belirlenen hücreler değer girilebiliyor...
parola = "deneme"'dir...
araçlar-koruma-sayfa korumasını kaldır'dan parolayı değiştirebilirsin
iyi çalışmalar...
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
Selamlar,

Eğer amacınız formüllü hücrelerin silinmesini önlemek ise makroya ihtiyacnız olduğunu düşünmüyorum.

Bu işlem için dosyanızdaki formüllü sayfanızı açın. Tüm hücreleri seçip BİÇİM menüsünden HÜCRELER seçeneğini seçip ekrana gelen pencerede KORUMA bölümünü seçin. Buradaki KİLİTLİ seçeneğinin işaretini kaldırın ve tamam dedikten sonra aynı sayfada formüllü hücreleri seçin. (Formüllü hücreleri tek seferde seçebilmek için F5 tuşuna basıp ÖZEL bölümünü seçin ve buradanda FORMÜLLER seçeneğini seçip tamam tuşuna basın.)

Formüllü hücreleri seçtikten sonra BİÇİM menüsünden HÜCRELER seçeneğini seçip ekrana gelen pencerede KORUMA bölümünü seçin. Buradaki KİLİTLİ seçeneğini işaretledikten (GİZLİ seçeneğinide işaretlerseniz formüller formül çubuğunda görüntülenmez.) sonra sayfayı koruma altına alın. (Bu işlemide ARAÇLAR-KORUMA-SAYFAYI KORU menüsünden yapabilirsiniz.

Umarım faydası olur.
sayın Cost_Control, Sayın exelemre123 ilginiz için teşekkürler dediğiniz gibi yaptım, formüller gizlendi, ama başka kullanıcı tarafından formüller silinebiliyor, bunu önlemenin bir yolu varmı, aslında ben bu işi makro kullanmak suretiyle yapmak istiyorum, böylesi daha güzel olacak ve benim de matematiksel işlemleri ilk defa makro yolu ile yapma yönünde ilk denemem olacaktı o zaman makroyu daha iyi anlayacağımı tahmin ediyordum, saygılar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sn. gezgin-49,

Makro ile yapmak sorun değil. Ama düşünün bu dosyayı kullanan kişi makroları etkinleştirmeden bu dosyayı açarsa formülleriniz korumasız kalacaktır. Bir önceki mesajımda tarif ettiğim yöntemde kullanıcı formüllü hücreleri silemez. Sadece korumasız hücrelerde işlem yapabilir ve makro etkinleştirmeme problemide ortadan kalkar.

sayın Cost_Control, Sayın exelemre123 ilginiz için teşekkürler dediğiniz gibi yaptım, formüller gizlendi, ama başka kullanıcı tarafından formüller silinebiliyor, bunu önlemenin bir yolu varmı, aslında ben bu işi makro kullanmak suretiyle yapmak istiyorum, böylesi daha güzel olacak ve benim de matematiksel işlemleri ilk defa makro yolu ile yapma yönünde ilk denemem olacaktı o zaman makroyu daha iyi anlayacağımı tahmin ediyordum, saygılar.
Bu mesajınızdan işlemi yaparken sadece GİZLEME seçeneğini işaretlediğiniz ortaya çıkıyor. KİLİTLE seçeneğinizde işaretlerseniz ve sayfanızı koruma altına alırsanız formüllü hücreleri silmek-değiştirmek istediğinizde excel size bir uyarı mesajı verecektir. Umarım faydası olur.
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
Sayın Cost_Control öncelikle iyi akşamlar diyeyim,

Selamlar,

Makro ile yapmak sorun değil. Ama düşünün bu dosyayı kullanan kişi makroları etkinleştirmeden bu dosyayı açarsa formülleriniz korumasız kalacaktır. Bir önceki mesajımda tarif ettiğim yöntemde kullanıcı formüllü hücreleri silemez. Sadece korumasız hücrelerde işlem yapabilir ve makro etkinleştirmeme problemide ortadan kalkar.
yaptığım proğram zaten makro içeriyor, yapılan diğer makrolar veri aktarımı vb gibi makrolar, ama matematiksel olarak hiçbir makro yok, yapacağım bu makro ilk matematiksel makro denemem olacak ama hiçbir fikrim yok, zaten diğer makroları da SAYIN ADMİN LEVENTMsayesinde yapmıştım, ama yapılan makrolara bakarak nasıl yapıldığı yönünde önemli ölçüde mesafa katettiğimi zannediyorum, bu nedenle yaptığım proğramda miras hesapları sayfasında D8 hücresinden aşağıya doğru D9, D10, D11......D65536 nolu hücrelere kadar yukarıda belirttiği gibi (=(EĞER($B8="";"";EĞER($B8="çocuğu";($E$3-$D$7)/$G$2;EĞER($B8="gelini/damadı";$G$6;EĞER($B8="torunun gelini/damadı";$G$7...........)formülü makro ile yapmak istiyorum, yardımcı olursanız beni çok memnun etmiş olursunuz, size minnettar kalırım.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
ek yollar mısın

arkadaşım sen bir örnek yolla ve yapmak istediğini anlat sana yardımcı olalım bu form'da yardım edilmeyecek bir (excel hakkında) konu yoktur...
 

gezgin-49

Altın Üye
Katılım
17 Ekim 2006
Mesajlar
669
Excel Vers. ve Dili
Türkçe 2003
Altın Üyelik Bitiş Tarihi
22-09-2028
arkadaşım sen bir örnek yolla ve yapmak istediğini anlat sana yardımcı olalım bu form'da yardım edilmeyecek bir (excel hakkında) konu yoktur...
Sayın emrexcel123 ilginiz için teşekkürler bir kaç gündür internet bağlantım yoktu bu nedenle sizlerden uzak kaldım mesajınızı yeni gördüm, şimdi size bir dosya göndereceğim, göndereceğim dosyada "miras" sayfasında D7 ile D65536 arasındaki formülleri makro yolu ile yapmak istiyorum, benim yapmak istediğim hesaplama işlemini makro yolu ile yaptıktan sonra karar sayfasında bu verileri yerlerine oturtmak istiyorum, ama asıl istediğim karar sayfasınında yapmak istediğimi word sayfasına aynı şekilde aktarmaktır. ayrıca proğram hakkında görüş, öneri ve eleştirilerinizi de bekliyorum, makro parolası:"kenan"
yapılmak istenilen şeyin mantığını anlamanız için kısa bir açıklama da yapmak istiyorum,

miras hesaplama proğramında mantık şu : mirası hesaplanmak istenen ölen kişiye "muris" denir.
murisin eşi sağ ise mirastan 1/4 hisse alır, geriye kalan 3/4 hisse tüm çocukları arasında paylaştırılır. murisin bekar ölen çocuklarına miras düşmez ama evli ölen çocuklarına sağ cocuklarına düşen hissenin aynısı düşer, burada evli olarak ölen çocukların hisseleri de kendi mirasçıları (eş ve çocukları) arasında paylaştırılır, evli ölen çocuğun mirasının paylaşımı ilk anlattığım ile aynı yani evli ölen çocuğun eşi mirastan pay alıyorsa 1/4 çocukları da 3/4 hisse alır, bu durum murisin evli ölen torunlarında da aynı inşallah anlatabilmişimdir,
 
Üst