• DİKKAT

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

Modüldeki makro çalıştırılınca sayfalardaki olaylar çalışmasın

Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Forumun Değeli üyeleri

Düğme aracılığı ile çalıştırdığımız bir yazdır makrosu sırasında, sayfalar arasında bir iki defa geçiş gerekmektedir. Bu makronun çalışması anında sayfalardaki change olaylarının çalışmasını hangi kod yardımı ile nasıl engelleriz.
Saygılarımla.
 
Kodlarınızın başına;

Application.Screenupdating = False

Sonuna da

Application.Screenupdating = True

yazmalısınız.
 
sayın seismic
soruyu tam anlatamadım.
Bu verdiğiniz kodlar işimi görmedi.
Sayfalardaki değişim titremeleri kasdetmiyorum.

Bir sayfaya ait yazdır makrosunu modülden çalıştırdığımda,
Makro çalışınca sayfalara bağlı "change", "select", "deactive", "active" gibi makro olaylarıda çalışıyor.
Bunlar yazdır makrosu için gereksiz boşa zaman kaybı yapıyor.
Sayfalara bağlı kodların çalışmasını istemiyorum. Bunlar devre dışı kalsın istiyorum.
Saygılarımla
 
merhaba

sanırım böyle bir kod istiyorsunuz.
Sayfa1'in kod sayfasında şöyle kodlar olduğunu var sayarsak.
Kod:
Private Sub Worksheet_Activate()
If atla = 1 Then GoTo dip
MsgBox ActiveSheet.Name & " sayfasını açtınız"
dip:
End Sub

Private Sub Worksheet_Deactivate()
If atla = 1 Then GoTo dip
MsgBox "Sayfa1 sayfasını çıktınız"
dip:
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If atla = 1 Then GoTo dip
MsgBox ActiveSheet.Name & " sayfasında " & ActiveCell.Address & " hücresini seçtiniz"
dip:
End Sub

modülden çalıştırdığınız şöyle bir kod olduğunu varsayalım
Kod:
Public atla As Byte

Sub test()
atla = 1
For i = 1 To Worksheets.Count
Sheets(i).Select
[a1] = "uzmanamele"
Next i
atla = 0
End Sub

normal şartlarda sayfa1 üzerinde işlem yaptığınızda birtakım kodlar çalışırken test makrosu çalıştığında bu olaylar tetiklenmeyecektir.
 
Sayın uzmanamele
İlginiz ve cevabınız için teşekkür ederim. Tam benim istediğim gibi bir kod
modüldeki kodları
atla=1
atla=0
gereken işlem makrolarının hepsinin başına ve sonuna ekleyeceğim herhalde.
bütün sayfalara bağlı kod bölümlerinin başına ve sonuna da:
If atla = 1 Then GoTo dip
xxxxx
xxxxx
dip:
kodlarını eklemem gerekiyor.

Ancak bu kod bile her sayfaya bağlı kod başlıklarına (Private Sub Worksheet change gibi) bir kere uğruyor.
Hiç uğramamasını sağlayan bir özel kod varmı acaba?
sayfgılarımla
 
Geri
Üst