Makroyu pasife çekme

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhabalar günaydın herkese. Koşullu biçimlendirme ile "satır()=hücre("sat")" formülü ile satır renklendirmesi yapıyorum ayrıca kodu tetiklemesi için de aşağıdaki formülü kullanıyorum.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Application.CutCopyMode = False Then

Application.Calculate

End If

End Sub

Benim yapmak istediğim bu makroyu nasıl pasif hale getirebilirim.
 

Korhan Ayhan

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

Amacınız makroyu istediğiniz zaman durdurup çalıştırmak ise Boolean bir değer tanımlayıp kullanabilirsiniz.

C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Kontrol = True Then Exit Sub
    If Application.CutCopyMode = False Then
        Application.Calculate
    End If
End Sub
Boş bir modüle aşağıdaki kodu uygulayın.

C++:
Public Kontrol As Boolean

Sub Durdur()
    Kontrol = Not Kontrol
End Sub
Sonra sayfanıza bir buton ekleyip DURDUR makrosunu atayın. Butona ilk tıkladığınızda makronun çalışması duracaktır. Buton tekrar tıklarsanız makronuz tekrar devreye girecektir.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Merhaba

Çok kullanışlı olmaz.
Sadece sayfayı incelerken işe yarar.
Veri girişinde Kendiliğinden tetiklendiği için yine satır renklenir.

Bunun yerine Kod ile koşullu biçimlendirme formülü ekleyip silerseniz daha iyi olur.


C++:
Public k As Byte
C++:
Private Sub ToggleButton1_Click()
If ToggleButton1 = True Then
k = 1
Else: k = 0
End If
End Sub
C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If k = 0 Then Exit Sub
If Application.CutCopyMode = False Then
Application.Calculate
End If
End Sub
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba,

Amacınız makroyu istediğiniz zaman durdurup çalıştırmak ise Boolean bir değer tanımlayıp kullanabilirsiniz.

C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Kontrol = True Then Exit Sub
    If Application.CutCopyMode = False Then
        Application.Calculate
    End If
End Sub
Boş bir modüle aşağıdaki kodu uygulayın.

C++:
Public Kontrol As Boolean

Sub Durdur()
    Kontrol = Not Kontrol
End Sub
Sonra sayfanıza bir buton ekleyip DURDUR makrosunu atayın. Butona ilk tıkladığınızda makronun çalışması duracaktır. Buton tekrar tıklarsanız makronuz tekrar devreye girecektir.
Çok teşekkür ederim Korhan hocam elinize sağlık
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba

Çok kullanışlı olmaz.
Sadece sayfayı incelerken işe yarar.
Veri girişinde Kendiliğinden tetiklendiği için yine satır renklenir.

Bunun yerine Kod ile koşullu biçimlendirme formülü ekleyip silerseniz daha iyi olur.


C++:
Public k As Byte
C++:
Private Sub ToggleButton1_Click()
If ToggleButton1 = True Then
k = 1
Else: k = 0
End If
End Sub
C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If k = 0 Then Exit Sub
If Application.CutCopyMode = False Then
Application.Calculate
End If
End Sub
Çok teşekkür ediyorum hocam elinize sağlık
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Ben de şöyle bir mantık uyguluyorum bu gibi durumlarda.
Bir hücre örneğin A1 hücresi boş ise makro çalışır, dolu ise makro çalışmaz.
kodların başına if [A1] <> "" then exit sub eklendiğinde yeterli oluyor.
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Ben de şöyle bir mantık uyguluyorum bu gibi durumlarda.
Bir hücre örneğin A1 hücresi boş ise makro çalışır, dolu ise makro çalışmaz.
kodların başına if [A1] <> "" then exit sub eklendiğinde yeterli oluyor.
Aslında mantığı çok basitmiş, çok teşekkür ederim Necdet hocam
 
Üst