Fonksiyon içinden makro çalıştırabilirmiyiz?

Katılım
4 Aralık 2006
Mesajlar
16
Excel Vers. ve Dili
Office 2003/tr
Office 2007/tr
Merhaba arkadaşlar,
makroları her şekilde çalıştırabiliyoruz. aktif hücrede, aktif sayfada, hücre değeri şu iken vb. ama benim öğrenmek istediğim, bir formül içinde gerekli şartlar sağlandıktan sonra ilgili makroyu nasıl çalıştırabiliriz.
Örnek:
=eğer(a1=100;Makro adı;"")
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,214
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

Bu şekil olabilir.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If [b1].Value = "Makro adı" Then
MsgBox "Makro adı makrosu çalıştı"
End If
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba arkadaşlar,
makroları her şekilde çalıştırabiliyoruz. aktif hücrede, aktif sayfada, hücre değeri şu iken vb. ama benim öğrenmek istediğim, bir formül içinde gerekli şartlar sağlandıktan sonra ilgili makroyu nasıl çalıştırabiliriz.
Örnek:
=eğer(a1=100;Makro adı;"")
Merhaba.
Makro ile yazılmış KTF(Kullanıcı Tanımlı Fonksiyon) kulanabilirsiniz.
Aşağıdaki KTF 'yi bir modüle kopyalayın.
ve Bir Hücreye =KTF(A1) yazın.
A1 hücresine 100 girin ve sonucu gözlemleyin.:cool:
Kod:
Function KTF(a As Range)
If a = 100 Then MsgBox "Hücre 100"
End Function
 
Son düzenleme:

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,228
Excel Vers. ve Dili
Ofis 365 Türkçe
ya da :

Bir fonksiyon yazılabilir (Kullanıcı Tanımlı)

Kod:
Function Mesaj()
        MsgBox "Merhaba"
End Function
Excelde de :

Kod:
=IF(A1=100;mesaj();"")
=EĞER(A1=100;mesaj();"")
 
Katılım
4 Aralık 2006
Mesajlar
16
Excel Vers. ve Dili
Office 2003/tr
Office 2007/tr
hepinizin verdiği cevaplar için teşekkür ederim.
Necdet Yesertener'in verdiği cevap bana daha mantıklı geldi ama excelde formül içine yazacağımız makro ille de kullanıcı tanımlı fonksiyon mu olması gerekiyor.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
hepinizin verdiği cevaplar için teşekkür ederim.
Necdet Yesertener'in verdiği cevap bana daha mantıklı geldi ama excelde formül içine yazacağımız makro ille de kullanıcı tanımlı fonksiyon mu olması gerekiyor.
Hayır, normal bir fonksiyon kullanıp, fonksiyonun bulunduğu hücredeki değere göre makroyu çalıştıran bir kodu, worksheet_calculate veya worksheet_change olayına yazabilirsiniz.
 
Katılım
4 Aralık 2006
Mesajlar
16
Excel Vers. ve Dili
Office 2003/tr
Office 2007/tr
leventm
rica etsem konuyu biraz açabilirmisin?
 
Katılım
4 Aralık 2006
Mesajlar
16
Excel Vers. ve Dili
Office 2003/tr
Office 2007/tr
leventm yazdığını ilk önce anlamamıştım ama biraz araştırınca olayı çözdüm.
teşekkür ederim.
 
Üst