Formülleri makro olarak nasıl yazabilirim

Katılım
28 Mayıs 2011
Mesajlar
17
Excel Vers. ve Dili
excel 2003 türkçe
Makro bilgim yok denecek kadar az ve bu sitedeki uzmanlarımız sayesinde yeni yeni öğrenmeye çalışıyorum.
Aşağıda yazdıklarımı formüllerle yapabiliyorum fakat makro olarak herhangi bir buton kullanmadan nasıl yazabileceğimi öğrenmek istiyorum
Her iki formülde bütün sütunda geçerli olacak.
Yazarken dikkat etmem gereken noktalarıda açıklayabilirseniz diğer formülleri kendim yapmayı deneyeceğim. Yardımcı olabilecek arkadaşlara şimdiden teşekkürler.

Sayfa1 içinde kullandığım formül
=EĞER($D4>0;$I4*$J4;"")
=EĞER($D5>0;$I5*$J5;"") vb....
Sayfa1 içinde olupta Sayfa2 deki bilgilerle çalışan formül
=EĞER($D4>0;TOPLA.ÇARPIM((Sayfa2!$A$4:$A$1001=$A4)*(Sayfa2!$C$4:$C$1001=$D4)*(Sayfa2!$D$4:$D$1001=$E4);(Sayfa2!$H$4:$H$1001));"")
=EĞER($D5>0;TOPLA.ÇARPIM((Sayfa2!$A$4:$A$1001=$A5)*(Sayfa2!$C$4:$C$1001=$D5)*(Sayfa2!$D$4:$D$1001=$E5);(Sayfa2!$H$4:$H$1001));"") ........
 
Katılım
3 Nisan 2008
Mesajlar
777
Excel Vers. ve Dili
Office 2007 Türkçe
Altın Üyelik Bitiş Tarihi
04-11-2020
Sn. slymn33, Formülleri makro ile; Makro kaydet tuşu yardımıyla yazabilirsiniz. Eğer formülünüzü bir kod içerisinde Userform veya bir buton aracılığı ile bir hücreye yazdıracaksanız bu hücrede makro kaydet çalıştırıp formülü yazar ve sonuçlarını modül içerisinden alabilirsiniz.
Başka yollarda varmıdır bilmiyorum ama ben böyle yapıyorum.
Sizin sorunuzdaki ilk formül; =EĞER($D4>0;$I4*$J4;"") formülünün makrosu
= "=IF(R[2]C4>0,R[2]C9*R[2]C10,"""")" şeklinde olacak.

Kolay Gelsin
 

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Merhaba
Yapacağızız işlemleri sıra ile yazıyorum
1) Excel dosyası açın 2003 için Araçlar/Makrolar/yeni makro kaydeti seçin
2) formül sonucunun hangi hücrede yazılacaksa o hücreyi tıklayın ve formülü yazın
3) formül yazma işlemi bittiğinde Araçlar/Makrolar/kaydı durduru tıklayın
4) dosyanızın kod sayfasını açın bir modül eklendiğini göreceksiniz modüle tıklayın yazdığınız formülün kaydedilğini görün

sonra aşağıdaki kodları dosyanızın boş birmodülüne yapıştırın

Sub işlemyap1()
With Range("C2:C1000")
.Formula = "=****************************
.Value = .Value
End With
End Sub

Sonra .Formula = "=********kısmına makro olarak kaydettiğiniz = ile başlayan formülü sonuna kadar olan kısmını kopyalayarak yapıştırın
With Range("C2:C1000")
kısmına "C2:C1000" formül hangi sutunda işlem yapacaksa onu yazın
diğer formülleride aynı şekilde
Sub işlemyap2() başlıktaki 1,2,3 yaparak tekrarlayın
Sonra dosyanızdaki kullanacağınız sayfanın
kod bölümüne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
işlemyap1
işlemyap2
işlemyap3

End sub

yapıştırıp deneme yapın
 
Son düzenleme:
Katılım
23 Eylül 2004
Mesajlar
1,754
Excel Vers. ve Dili
Excel 2010 TR
Sayfa1 içinde kullandığım formül
=EĞER($D4>0;$I4*$J4;"")
=EĞER($D5>0;$I5*$J5;"") vb....
Sayfa1 içinde olupta Sayfa2 deki bilgilerle çalışan formül
=EĞER($D4>0;TOPLA.ÇARPIM((Sayfa2!$A$4:$A$1001=$A4)*(Sayfa2!$C$4:$C$1001=$D4)*(Sayfa2!$D$4:$D$1001=$E4);(Sayfa2!$H$4:$H$1001));"")
=EĞER($D5>0;TOPLA.ÇARPIM((Sayfa2!$A$4:$A$1001=$A5)*(Sayfa2!$C$4:$C$1001=$D5)*(Sayfa2!$D$4:$D$1001=$E5);(Sayfa2!$H$4:$H$1001));"") ........[/QUOTE]

Eğer formulunu aşağıdaki gibi kullanabilirsin fakat birden cok satırda yapmasını istiyorsan döngü uygulaman gerekir.

Not :Cells(4,4) işlemi 4.Satır 4.Sutun Anlamına Gelir. 4.Satır =4 4.Sutun =D buda D4 yapar..


Kod:
if Cells(4,4).value>0 then
Cells(4,5).value=Cells(4,9).value*Cells(4,9).value
end if
 
Katılım
28 Mayıs 2011
Mesajlar
17
Excel Vers. ve Dili
excel 2003 türkçe
Cevap veren ve düşünen tüm arkadaşlara teşekkürler
Numan bey'in yazdıklarını denedim ama sanırım tam olarak uygulayamadım diğer önerileride en kısa zamanda deneyeceğim
Sub işlemyap1()
With Range("C2:C1000")
.Formula = "=****************************
.Value = .Value
End With
End Sub
kodlarını yeni bir modüle ekleyip çalıştırdım
ilk satırda formül çalışıyor fakat sonraki satırlarda çalışmıyor
Nerede yanlış yaptığımı söyleyebilirseniz sevinirim
 
Katılım
28 Mayıs 2011
Mesajlar
17
Excel Vers. ve Dili
excel 2003 türkçe
Anlattığınız şekilde formül yazmayı öğrenmiş oldum. İlginize teşekkürler
 

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Merhaba
Çalışmanız ile ilgili örnek dosya ekleyip gönderirseniz (EXCEL 2003) yardımcı olmaya çalışırım
 
Son düzenleme:
Katılım
28 Mayıs 2011
Mesajlar
17
Excel Vers. ve Dili
excel 2003 türkçe
Merhaba Numan Bey

Önceki mesajınızda yazdıklarınızı uyguladım ve öğrenmiş olduğumu düşünüyorum. Bu konuda sorunum kalmadı.
Fakat hazırladığım dosya yavaş çalışıyor. Sanırım işlem yapılsın veya yapılmasın girdiğim formülle bütün satırlarda hesaplama yapıyor. Kullandığım makro kodların sadece data girilen satırla ilgili hesaplama yapması mümkünmüdür?
Ekli dosyayı görüntüle ÜRÜN STOK TAKİP-ŞUBAT 2012.xls
üretim sayfasındaki K,O,P,R ve S sütunları için formüller yazılı diğer sütunları ve diğer sayfalarda çalışacak formülleri daha sonra ekleyeceğim.
 
Üst