ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Save and exit automatically (https://www.excelbanter.com/excel-programming/300875-save-exit-automatically.html)

AnsiSys

Save and exit automatically
 
Hi!
I wanted to make a short macro, which saves and closes my exce
workbook automatically when I haven't done any changes within last 1
mins.

The code below shows how to do it, but it also causes som
disfunctions. For example the 'Find' command doesn't work while thi
code is running.

Please give a tip if you know better way to do this or it you know wha
changes I should do to this code to make it work properly.

Thanks!
-AnsiSys

-----Cut here------
Dim Changed As Boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Source As Range)
Changed = True
End Sub

Private Sub Workbook_Open()
Changed = False
Dim Time1
Dim Time2
Start:
Time1 = Timer: Time2 = Timer
Do Until Time2 - Time1 600 Or Changed = True
DoEvents
Time2 = Timer
Loop
If Changed Then Changed = False: GoTo Start
If Me.Saved = False Then Me.Save
Me.Close
End Sub
-----And here-----

--
Message posted from http://www.ExcelForum.com


Tom Ogilvy

Save and exit automatically
 
Use application.OnTime instead:

See Chip Pearson's page on this:

http://www.cpearson.com/excel/ontime.htm

--
Regards,
Tom Ogilvy

"AnsiSys " wrote in message
...
Hi!
I wanted to make a short macro, which saves and closes my excel
workbook automatically when I haven't done any changes within last 10
mins.

The code below shows how to do it, but it also causes some
disfunctions. For example the 'Find' command doesn't work while this
code is running.

Please give a tip if you know better way to do this or it you know what
changes I should do to this code to make it work properly.

Thanks!
-AnsiSys

-----Cut here------
Dim Changed As Boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Source As Range)
Changed = True
End Sub

Private Sub Workbook_Open()
Changed = False
Dim Time1
Dim Time2
Start:
Time1 = Timer: Time2 = Timer
Do Until Time2 - Time1 600 Or Changed = True
DoEvents
Time2 = Timer
Loop
If Changed Then Changed = False: GoTo Start
If Me.Saved = False Then Me.Save
Me.Close
End Sub
-----And here------


---
Message posted from http://www.ExcelForum.com/




AnsiSys[_2_]

Save and exit automatically
 
Hi!

Thanks for the tip! But now I have another problem.
How to close just the active workbook?
------------------------------------------------------
Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
ByVal nIDEvent As Long, ByVal dwTimer As Long)
'
' The procedure is called by Windows. Put your
' timer-related code here.
'
' -# Both of these lines will close all documents and
' exit Excel #-

ThisWorkbook.Close
ActiveWorkbook.Close

' -# This line doesn't work, because this code has to be
' in module #-

Me.Close

End Sub
------------------------------------------------------

-AnsiSy

--
Message posted from http://www.ExcelForum.com



All times are GMT +1. The time now is 05:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com