mars2
Altın Üye
- Katılım
- 2 Eylül 2004
- Mesajlar
- 553
- Excel Vers. ve Dili
-
2016 - Türkçe
2019 - Türkçe
- Altın Üyelik Bitiş Tarihi
- 26-03-2026
İyi Günler;
Excel çalışma kitabımın belli süre açık kalması ve herhangi bir işlem yapmam halinde kaydederek kapanmasını istemekteyim. Siteden yaptığım araştırma sonucu aşağıdaki koddları örnek uygulama yaptığımda çalışma ve belirlenen süre sonunda kapanmakta ancak, kendi projeme uyguladığım zaman çalışmamaktadır. Neden olabilir? Farklı uygulama önereileri olanlarda da yardımları için şimdiden teşekkürler.
Module
Private Declare PtrSafe Function MsgBoxTimeout _
Lib "user32" _
Alias "MessageBoxTimeoutA" ( _
ByVal hwnd As LongPtr, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As VbMsgBoxStyle, _
ByVal wlange As Long, _
ByVal dwTimeout As Long) _
As Long
Sub Otomatik_Zamanlı_Kapama()
Application.OnTime Now + TimeValue("00:02:00"), "Formu_Kapat"
End Sub
Sub Formu_Kapat() ' Excelin otomatik kapanmasında kullanılıyor.
On Error Resume Next
Dim w As Workbook
Dim Mesaj As Object
Hata.Clear
If Hata <> 0 Then
MsgBox "Hataor:" & Hata
Else
Call MsgBoxTimeout(0, "Çalışma Dosyanız 1 Dakika sonra kapanacaktır.", "UYARI", vbInformation, 0, 4000)
End If
Set Mesaj = Nothing
Application.OnTime Now + TimeValue("00:00:55"), "KaydetKapat"
Windows("Kaydetkapat.xlsm").Activate
Call MsgBoxTimeout(0, "Ek süreniz dolmuştur Kpanacaktır...," & vbCrLf & _
"Save işlemi yapılacaktır.", "Ek süreniz dolmuştur...", vbInformation, 0, 2000)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each w In Application.Workbooks
w.Save
Next w
For Each w In Application.Workbooks
w.Saved = True
Next w
Set objdocument = Nothing
Application.ScreenUpdating = True
'Application.DisplayAlerts = True
Application.Quit
End Sub
Thisworkbook
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Otomatik_Zamanlı_Kapama
End Sub
Excel çalışma kitabımın belli süre açık kalması ve herhangi bir işlem yapmam halinde kaydederek kapanmasını istemekteyim. Siteden yaptığım araştırma sonucu aşağıdaki koddları örnek uygulama yaptığımda çalışma ve belirlenen süre sonunda kapanmakta ancak, kendi projeme uyguladığım zaman çalışmamaktadır. Neden olabilir? Farklı uygulama önereileri olanlarda da yardımları için şimdiden teşekkürler.
Module
Private Declare PtrSafe Function MsgBoxTimeout _
Lib "user32" _
Alias "MessageBoxTimeoutA" ( _
ByVal hwnd As LongPtr, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As VbMsgBoxStyle, _
ByVal wlange As Long, _
ByVal dwTimeout As Long) _
As Long
Sub Otomatik_Zamanlı_Kapama()
Application.OnTime Now + TimeValue("00:02:00"), "Formu_Kapat"
End Sub
Sub Formu_Kapat() ' Excelin otomatik kapanmasında kullanılıyor.
On Error Resume Next
Dim w As Workbook
Dim Mesaj As Object
Hata.Clear
If Hata <> 0 Then
MsgBox "Hataor:" & Hata
Else
Call MsgBoxTimeout(0, "Çalışma Dosyanız 1 Dakika sonra kapanacaktır.", "UYARI", vbInformation, 0, 4000)
End If
Set Mesaj = Nothing
Application.OnTime Now + TimeValue("00:00:55"), "KaydetKapat"
Windows("Kaydetkapat.xlsm").Activate
Call MsgBoxTimeout(0, "Ek süreniz dolmuştur Kpanacaktır...," & vbCrLf & _
"Save işlemi yapılacaktır.", "Ek süreniz dolmuştur...", vbInformation, 0, 2000)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each w In Application.Workbooks
w.Save
Next w
For Each w In Application.Workbooks
w.Saved = True
Next w
Set objdocument = Nothing
Application.ScreenUpdating = True
'Application.DisplayAlerts = True
Application.Quit
End Sub
Thisworkbook
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Otomatik_Zamanlı_Kapama
End Sub