Auto shutdown for inactivity in Excel
and also you will need to set a reference to the Widows Scriot Host Model as
described in the code that you posted.
"Patrick Molloy" wrote:
not thisworkbook, as I wrote add a new code module
ALT+F11 from the excel workbook to open the editor
then INTERT ( a menu item ) then "MODULE" ( NOT "CLASS MODULE")
"jtfalk" wrote:
I went into tools-macros-visual basic
I clicked on ThisWorkbook and added the top 3 lines.
I then added a module and pasted the other in.
How do I get it to run?
I saved it - closed it- and opened it again and it does nothing.
"Patrick Molloy" wrote:
in a standard code module
(in the app develeopment environment. INSERT MODULE)
the Auto_Open name means that this will run when the workbook opens
"jtfalk" wrote:
I found this from an earlier post. Where and how do I put this in to make it
work?
That code does not look for inactivity. It closes the file after 30 minutes
regardless... Here is a slight modification of that code. It will pop up a
timed message box every (currently set to 20 seconds for degbugging but you
can change it to 30 minutes). The message box will stay up for 2 seconds. If
you hit yes then the 20 second (30 Minute) clock will start again. If not
then it saves and closes the file... Not you need to reference "Windows
Script Host Object Model" (in the VBE Tools - References - "Windows Script
Host Object Model"). This code sould be placed in a standard code module.
Sub Auto_Open()
Application.OnTime Now() + TimeValue("00:00:20"), "CloseMe"
End Sub
'requires reference to "Windows Script Host Object Model"
Public Sub CloseMe()
Dim SH As IWshRuntimeLibrary.WshShell
Dim Res As Long
Set SH = New IWshRuntimeLibrary.WshShell
Res = SH.Popup(Text:="Are you still there?", secondstowait:=2, _
Title:="Active", Type:=vbYesNo)
If Res = vbYes Then
Application.OnTime Now() + TimeValue("00:00:20"), "CloseMe"
Else
ThisWorkbook.Save
ThisWorkbook.Close
End If
End Sub
|