• DİKKAT

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

Sürekli çalışan komutlar.

Katılım
1 Mayıs 2009
Mesajlar
46
Excel Vers. ve Dili
2003 tr
Excelde sürekli çalışan bir modül döngüsü varmı. Fakat excelin çaılşmasını etkilemiyecek. Modülde bir döngü yazılabiliyor fakat exceli kilitliyor.
Örneği A1 hücresi 1 olduğunda a2 hücresini 1 yapsın 1 den farklı olduğunda 0 yapsın.
Worksheet change ile yapmak istemiyorum.
Bir modülde basic kodları yazıp excelin arka planında hücreyi kontrol etmek gibi bir şey istediğim.
Yardımlarınız için şimdiden teşekkür ederim.
 
Macro1 çalıştırdığınızda arka planda devamlı olarak çalışacaktır.


Kod:
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


Sub Macro1
if cells(1,1)=1 then
Cells(1,2)=1
end if
Call timerMsg
end sub

Sub timerMsg()
Dim alertTime
alertTime = Now + TimeValue("00:02:00")
Application.OnTime alertTime, "Macro1"
End Sub
 
Makro yu deneme fırsatım su anda oldu. Fakat tam istediğim gibi değil. Makro çalıştığı zaman belirli hücereleri kontrol edeceğim fakat excelin çalışmasını etkilemesin istiyorum.

Örneği denerseniz ne demek istediğim anlaşılır.


Sub Macro1()
If Cells(1, 1) = 1 Then
Cells(1, 2) = Cells(1, 2) + 1
End If
Call timerMsg
End Sub

Sub timerMsg()
Dim alertTime
alertTime = Now + TimeValue("00:00:00")
Application.OnTime alertTime, "Macro1"

If Cells(3, 1) = 1 Then
Cells(3, 2) = Cells(3, 2) + 1
End If

End Sub
 
Makro yu deneme fırsatım su anda oldu. Fakat tam istediğim gibi değil. Makro çalıştığı zaman belirli hücereleri kontrol edeceğim fakat excelin çalışmasını etkilemesin istiyorum.

Örneği denerseniz ne demek istediğim anlaşılır.


Sub Macro1()
If Cells(1, 1) = 1 Then
Cells(1, 2) = Cells(1, 2) + 1
End If
Call timerMsg
End Sub

Sub timerMsg()
Dim alertTime
alertTime = Now + TimeValue("00:00:00")
Application.OnTime alertTime, "Macro1"

If Cells(3, 1) = 1 Then
Cells(3, 2) = Cells(3, 2) + 1
End If

End Sub

Merhaba Süreyi 0 saniye olarak ayarlamışsınız buda macronun devamlı çalışmasını sağlar o yüzden işlem yapamazsınız alertTime = Now + TimeValue("00:01:00") şeklinde yaparsanız dakikada 1 kontrol eder süreyi siz belirleyin birde Timermsg makrounun altına işlem yapmayın işlemleri macro1 altında yapın aşağıdaki gibi.

Kod:
'kontrol edilecek olan işlemleri bu makronun altına yazın.
Sub Macro1()
If Cells(1, 1) = 1 Then
Cells(1, 2) = Cells(1, 2) + 1
End If

If Cells(3, 1) = 1 Then
Cells(3, 2) = Cells(3, 2) + 1
End If


Call timerMsg
End Sub

'bu makroda sadece çalışmasını istediğiniz zaman aralığını belirleyin.
Sub timerMsg()
Dim alertTime
alertTime = Now + TimeValue("00:01:00")
Application.OnTime alertTime, "Macro1"
End Sub
 
Merhaba.

Hüseyin Bey, yukarıda verdiğiniz kodları boş bir belgeye uyguladım ve süreyi de
Now + TimeValue("00:00:30") olarak ayarladım ancak, kod bu süreden bağımsız olarak
B1 hücresindeki değeri, 1 artırıyor.
Nedeni ne olabilir, istikrarlı çalışması için ne yapılabilir acaba?
Kod'a işlem zamanını C sütununa yazması için bir satır ekledim ve oluşan veriler ekli belgedeki gibi.
.
 

Ekli dosyalar

Son düzenleme:
Geri
Üst