• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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?
 
Sub Makrolar()
TD
TD1
...
...
End Sub

Şeklinde yazdıktan sonra bir düğmeye atarak deneyiniz.
 
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
 
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
 
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.
 
Alternatif olarak "Toggle Button" kullanabilirsiniz. Tam istenen işi yapıyor.
 
Selamlar,

Alternatif olarak ekteki örnek dosyayı incelermisiniz.
 
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.
 
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.
 
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.
 
Geri
Üst