Bir butona birden çok makro atama!

Katılım
6 Ağustos 2007
Mesajlar
17
Excel Vers. ve Dili
office 98 vb
Arkadaşlar tek bir butona sadece tıklama sayılarına göre birden çok makro akramak istiyorum.Şöyle ki
1. tıklamada TD adlı makrom
2.tıklamada TD1 adlı makrom çalışsın

Sonra yine başa alsın.yani tüm tıklamalarda bir TD çalışsın bir TD1.Bu mümkün müdür?
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Sub Makrolar()
TD
TD1
...
...
End Sub

Şeklinde yazdıktan sonra bir düğmeye atarak deneyiniz.
 
Katılım
6 Ağustos 2007
Mesajlar
17
Excel Vers. ve Dili
office 98 vb
Sub marolar()
TD
TD1
End Sub

Sub TD()
MsgBox ("TD")
End Sub

Sub TD1()
MsgBox ("TD1")
End Sub

Denedim ama olmuyor.Tek tıklamada her ikisinide ard arda çalıştırıyor.benim istediğim birdefa tıklamada TD çalışacak 2.defa yıklamada TD1
 

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
Ekli dosyayı inceleyiniz.:cool:
Kod:
Dim sayac As Long
Kod:
Sub TD()
MsgBox ("TD")
End Sub
Kod:
Sub TD1()
MsgBox ("TD1")
End Sub
Kod:
Sub marolar()
If sayac Mod 2 = 0 Then Call TD
If sayac Mod 2 = 1 Then Call TD1
sayac = sayac + 1
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sn.Orion2,

Değişik bir bakış açısı ve güzel bir sonuç. Düşüncenize sağlık.

Ama TD'yi hiç çalıştırmadan TD1'i aynı butonda çalıştırabilir miyiz acaba? Yani sizde sayaç tek sayıysa; TD1 çalışıyor. 0 noktası için TD1'i çalıştırma imkanımız yok veya sayaç değeri 1 iken arkasından TD1'in çalıştırılması mümkün değil sanırım.

Bu soru, benim de biraz kafamı kurcaladığı için soruyorum, kusura bakmayın lütfen....

Sağlıcakla kalın.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Alternatif olarak "Toggle Button" kullanabilirsiniz. Tam istenen işi yapıyor.
 

Korhan Ayhan

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

Alternatif olarak ekteki örnek dosyayı incelermisiniz.
 

Korhan Ayhan

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

Ekteki örnekte ise bir butonla 5 adet makroyu çalıştırma özelliği tanımlanmıştır. Her tıkladığınızda makrolar sırasıyla çalışır.
 
Katılım
17 Haziran 2017
Mesajlar
25
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
06/07/2019
Sub marolar()
TD
TD1
End Sub

Sub TD()
MsgBox ("TD")
End Sub

Sub TD1()
MsgBox ("TD1")
End Sub

Denedim ama olmuyor.Tek tıklamada her ikisinide ard arda çalıştırıyor.benim istediğim birdefa tıklamada TD çalışacak 2.defa yıklamada TD1
Benzer bir örnek için interneti araştırdığımda sorunuz çıktı karşıma ve şu yazınızdaki kodu denedim, çalıştı. Çok da sevindim ve bir şey daha öğrendim. makro adını değişken olarak yeni bir makroda tanımlayıp makroyu çalıştırabiliyormuşuz.
Sadece şu dikkatimi çekti, siz kodu tanımlarken programa önce TD ve TD1 isimli makroları çalıştır demişsiniz ama program bunları henüz tanımıyor.

Önce TD ve TD1 makroları çalışmalı, yani programa tanıtılmalı, sonra da "Makrolar" olmalı, en sonda yani.

Sub TD()
MsgBox ("TD")
End Sub

Sub TD1()
MsgBox ("TD1")
End Sub

Sub marolar()
TD
TD1
End Sub

olursa, kod çalışacaktır. Ben denedim, oldu.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Benzer bir örnek için interneti araştırdığımda sorunuz çıktı karşıma ve şu yazınızdaki kodu denedim, çalıştı. Çok da sevindim ve bir şey daha öğrendim. makro adını değişken olarak yeni bir makroda tanımlayıp makroyu çalıştırabiliyormuşuz.
Sadece şu dikkatimi çekti, siz kodu tanımlarken programa önce TD ve TD1 isimli makroları çalıştır demişsiniz ama program bunları henüz tanımıyor.

Önce TD ve TD1 makroları çalışmalı, yani programa tanıtılmalı, sonra da "Makrolar" olmalı, en sonda yani.


Sub TD()
MsgBox ("TD")
End Sub

Sub TD1()
MsgBox ("TD1")
End Sub

Sub marolar()
TD
TD1
End Sub

olursa, kod çalışacaktır. Ben denedim, oldu.
Buradaki yanlışı düzeltelim...

3 nolu.mesajdaki kod her iki makroyu arka arkaya sırasıyla çalıştırır. Yani sizin bahsettiğiniz sıralamanın bir önemi yoktur. Kod 3 nolu mesajdaki haliyle de çalışacaktır. Sadece istenen bu değildir.

İstenen butona ilk tıklandığında TD makrosu çalışsın. Butona 2. kez tıklandığında ise TD1 makrosu çalışsın.
 
Üst