Soru Macroyu durdurmak

Katılım
7 Ağustos 2019
Mesajlar
106
Excel Vers. ve Dili
İngilizce
Macroyu komple durdurmak mümkün mü ?
Örneyin bir kod bloğunda textbox3_exit kodu koydum bide textbox3_keydown kodu koydum ilk exit çalışıyor işlem yapınca sonra keydown ben exit kodunda bir şartın altına bi kod yazsam eğer o kod sağlanmazsa keydown koduna geçmese böyle bir şey mümkün mü
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,743
Excel Vers. ve Dili
2021 Türkçe
Ne yapmak istediğinizi tam olarak ifade ederseniz daha iyi olur.
Belki seçmiş olduğunuz yöntem dışında bir çözüm bulunabilir.

Örnek bir dosya üzerinde göstermeniz daha hızlı cevap almanızı sağlayacaktır.
 
Katılım
7 Ağustos 2019
Mesajlar
106
Excel Vers. ve Dili
İngilizce
Ne yapmak istediğinizi tam olarak ifade ederseniz daha iyi olur.
Belki seçmiş olduğunuz yöntem dışında bir çözüm bulunabilir.

Örnek bir dosya üzerinde göstermeniz daha hızlı cevap almanızı sağlayacaktır.
Şöyleki başka bir çözüm ben düşündüm ama brn öğrenmek amacıyla soruyorum sorum şu exit sub o macroyu durduruyor benim istediğim bütün macroları durduran bir deyim bir sonraki macroya gitmemesini sağlıyacak bir kod
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,743
Excel Vers. ve Dili
2021 Türkçe
Eğer kodlarınız bir UserForm içindeyse.

End deyimi uygulamayı tamamen durdurur.
Yani Form_Inıtialize dahil çalışan her kod durur ve dolayısı ile form da kapanır.

Eğer kodlarınız Excel sayfasında ise
Application.EnableEvents = False
kullanırsanız bu kod satırı, Excel sayfalarında otomatik çalışan kodların bir daha çalışmasını engeller.

Örneğin
Sayfada hücre seçimi yapılınca çalışan aşağıdaki kod
Application.EnableEvents = False
kodu çalıştırıldıktan sonra artık çalışmaz.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Kodların çalışıp çalışmamasını her zaman siz kontrol etmek isterseniz şöyle bir yöntem kullanılabilir.

Bir modüle oluşturun
En üst satıra şunu yazın.
pubic KodlariCalistir as boolean

Şimdi Form içinde buton click olayına
Kod:
Private Sub CommandButton1_Click()
    KodlariCalistir = False
End Sub
kodlarını yazın.

Bundan sonra her makronun başına şu satırı yazın.
Kod:
Private Sub CommandButton2_Click()
    If KodlariCalistir = False Then Exit Sub
    MsgBox "Eğer KodlariCalistir = False ise bu mesaj çıkmaz, eğer KodlariCalistir = True ise bu mesaj çalışır."
End Sub
Benzer şekilde bir mantık yürütülebilir.
 
Katılım
7 Ağustos 2019
Mesajlar
106
Excel Vers. ve Dili
İngilizce
Eğer kodlarınız bir UserForm içindeyse.

End deyimi uygulamayı tamamen durdurur.
Yani Form_Inıtialize dahil çalışan her kod durur ve dolayısı ile form da kapanır.

Eğer kodlarınız Excel sayfasında ise
Application.EnableEvents = False
kullanırsanız bu kod satırı, Excel sayfalarında otomatik çalışan kodların bir daha çalışmasını engeller.

Örneğin
Sayfada hücre seçimi yapılınca çalışan aşağıdaki kod
Application.EnableEvents = False
kodu çalıştırıldıktan sonra artık çalışmaz.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Kodların çalışıp çalışmamasını her zaman siz kontrol etmek isterseniz şöyle bir yöntem kullanılabilir.

Bir modüle oluşturun
En üst satıra şunu yazın.
pubic KodlariCalistir as boolean

Şimdi Form içinde buton click olayına
Kod:
Private Sub CommandButton1_Click()
    KodlariCalistir = False
End Sub
kodlarını yazın.

Bundan sonra her makronun başına şu satırı yazın.
Kod:
Private Sub CommandButton2_Click()
    If KodlariCalistir = False Then Exit Sub
    MsgBox "Eğer KodlariCalistir = False ise bu mesaj çıkmaz, eğer KodlariCalistir = True ise bu mesaj çalışır."
End Sub
Benzer şekilde bir mantık yürütülebilir.
Çok teşekürler ????
 
Üst