Makro Çalışırken Maus Pasif olsun

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
380
Excel Vers. ve Dili
Microsoft Office 2019 Türkçe
Mehabalar.

Makro çalışrtken Mause Hareket ettirilemesin.
belli süre sonra izin vermek istiyorum.
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
380
Excel Vers. ve Dili
Microsoft Office 2019 Türkçe
Mehabalar.

Makro çalışrtken Mause Hareket ettirilemesin.
belli süre sonra izin vermek istiyorum.
Kendi yazdığımı okuduğumda hatalı ve anlaşılır olmadığını düşünerek tekrar yazmak istedim.
VBA kodlarımın arasına bir kod koymalıyım ki, Maus devre dışı kalsın. VBA kodlarımın bir kısmı çalıştıktan sonra tekrar maus aktif (normal) olsun.
Nasıl bir kod yazabilirim. Teşekkürler.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
3,154
Excel Vers. ve Dili
Ofis 365 Türkçe
EnableEvents yeterli mi bir deneyin.
C++:
Application.EnableEvents=False
'....
Kodlarınız
'......
Appliacaiton.EnableEvents=True
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
380
Excel Vers. ve Dili
Microsoft Office 2019 Türkçe
Faruk bey denedim ama sonuç alamadım. Mausa kumanda yapamayım.
Yaptığım işi şu şekilde anlatsam daha iyi olur. Vba ile işlem yaparken, bir program penceresinin aktif olması için, vba kodları ile o pencereye tıklama yaptırıyorum. ardından SendKeys Enter işlemi yaptırıyorum.
Ancak ben o an bilgisayarda başka işlemler yapıyor isem mausu da hareket ettirdiğimde doğru yere tıklansada o an başka yere tıkladığımdan sonuç alamıyorum.
Çok teşekkür ederim.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
10,507
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
Mouse ile tıklamayı iptal etmek için;

C#:
Application.Interactive = False

Düzeltmek için;

C#:
Application.Interactive = True
.
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
380
Excel Vers. ve Dili
Microsoft Office 2019 Türkçe
Haluk bey teşekkür geç oldu biliyorum. Cevap için çok teşekkür ederim. Olağan dışı olaylar geliştiğinden sayfaya bakamadım.
sorumu daha ayrıntılı anlatmak istiyorum.
1- Whatsapp Masaüstü programını indiriyorum.
2- Excel VBA ya aşağıdaki kodu yazıyorum.
3- Excel başka bir programdan (Matriks) sürekli veri alıyor.
4- Bilgisayar Matriksden aldığı veri doğrultusunda İşlem yaptığında, Whatsapp ile işlemleri mesaj ile iletiyor. Mesaj iletmesi için aşağıdaki kod çalışıyor ve kod içinde "Call maus_hareket" ile başka bir makro çalıştırıyorum. çünkü
" Call SendKeys("{ENTER}", True)" kodunu çalıştırabilmem için Whatsapp Masaüstü programın aktif (seçili) olması olması gerekiyor.
Aksi halde " Call SendKeys("{ENTER}", True)" kodu çalışmıyor.
6 - Normal şartlarda yukarıdaki işlemleri yapıyor ve sorun yok. Ancak, ben bilgisayarda çalıştığım anda, aşağıdaki kod çalışarak mesaj göndermek istediğinde
ve "Call maus_hareket" makrosu çalışarak Bilgisayar otomatik olarak Whatsapp Masaüstü programını tıklamak istediğinde bende mausu başka
Mouse ile tıklamayı iptal etmek için;

C#:
Application.Interactive = False

Düzeltmek için;

C#:
Application.Interactive = True
.
yöne hareket ettirirsem
Maus Whatsapp Masaüstü programı üzerine tıklayamıyor. Bu nedenle mesaj gönderilemiyor.
SORU/SORUNUM: "Call maus_hareket" makrosu çalıştığında ben mause ile bir hareket ettirmek istesemde yapamayım.
Teşekkür ederim.

Kod:
Sub Gunaydin()

Dim Tel As String
Dim Mesaj As String
Dim Veri As String
Dim IE ' As Object
Dim sst As Integer

Set IE = CreateObject("InternetExplorer.Application")
    
    Mesaj = "  Günaydın Mustafa  Tarih Saat : " & Now
    Tel = "5*********" 'Range("A2").Value
        IE.Navigate "whatsapp://send?phone=90" & Tel & "&" & "text=" & Mesaj
        Application.Wait Now + TimeValue("00:00:05")

'********************************
'Application.Interactive = False
'Application.EnableEvents = False
            Call maus_hareket 'Maus Whatsapp masaüsüt programı seçiyor.
'********************************
                'Application.Wait Now + TimeValue("00:00:01")
                Call SendKeys("{ENTER}", True)
'********************************
'Application.Interactive = True
'Application.EnableEvents = True
'********************************
                

                Application.Wait Now + TimeValue("00:00:01")
                    Set IE = Nothing 'Clear the object
                    Application.Wait Now + TimeValue("00:00:01")
                        Call SendKeys("{NUMLOCK}", True)
                        Application.Wait Now + TimeValue("00:00:01")

End Sub
 
Üst