workbook_close olayına doğrudan Application.OnTime Zaman, "IslemYap", , False kodunu eklediğimde sorunsuz çalıştı
dikkat edilmesi gereken nokta: ilgili modülün en başına eklenmesi gereken değişken mutlaka Public olmalı
tüm prosedürler
Public Zaman As Double
otomatik iş çağırmaSub OtomatikIslem()
On Error GoTo ErrorHandler ' Hata yönetimini başlat
' Zaman değişkeni
Zaman = Now + TimeValue("00:00:03") ' Şu anki zamanı al, üzerine 15 dakikayı ekle
Debug.Print , "İşlem", Now ' <<==buraya yapılacak işlem yazılır
Application.OnTime Zaman, "IslemYap" ' Zamanı ayarla ve "IslemYap" prosedürünü çalıştır
Exit Sub ' Prosedürü bitir ve çık
ErrorHandler:
' Hata durumunda yapılacak işlemler
' Hata mesajlarını kullanıcıya göstermek ya da loglamak gibi
' ...
Exit Sub ' Hata durumunu bitir ve çık
End Sub
Yapılacak işSub IslemYap()
' Burada yapmak istediğiniz işlemi kodlayabilirsiniz
' ...
' İşlem yapıldıktan sonra tekrar OtomatikIslem prosedürünü çağırarak 15 dakika sonra yeniden çalışmasını sağlayabilirsiniz
Debug.Print Now
OtomatikIslem
End Sub
Durdurma işlemiSub IslemDurdur()
On Error Resume Next ' Hata yönetimini devre dışı bırak
' OtomatikIslem prosedürünü iptal et
' Application.OnTime earliesttime:=0, procedure:="IslemYap", schedule:=False
'Zaman = 0
Application.OnTime Zaman, "IslemYap", , False
On Error GoTo 0 ' Hata yönetimini tekrar etkinleştir
End Sub