Perfect, many thanks Pedie.Code:Private Sub Workbook_Open() Application.OnTime TimeValue("00:00:03"), "Close_code" [B]End Sub[/B] sub Close_code() thisworkbook.close savechanges:= true msgbox "closing"
Thanks JamesW, brilliant!Hi there,
Try:
Code:Private Sub Workbook_Open() Application.OnTime Now + TimeValue("00:00:03"), "closeWB" End Sub Sub closeWB() ActiveWorkbook.Close End Sub
Sub closeWB()
ActiveWorkbook.Close True
End Sub
Many thanks for this great suggestion.Hi,
You might want to add an argument to the close; see the VBA helpfiles.
If a user makes changes, you will get a "do you want to save changes" popup.Code:Sub closeWB() ActiveWorkbook.Close True End Sub
kind regards,
Erik
Thanks JamesW - works perfectly!Try:
Code:Private Sub Workbook_BeforeClose(Cancel As Boolean) ActiveWorkbook.Save End Sub
Option Explicit
Private Sub Workbook_Open()
SetCloseTime
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
CancelSchedule
End Sub
Option Explicit
Private when As Variant
Sub closeWB()
ActiveWorkbook.Close True
End Sub
Sub SetCloseTime()
when = Now() + TimeValue("00:00:05")
Application.OnTime EarliestTime:=when, Procedure:="closeWB"
End Sub
Sub CancelSchedule()
On Error Resume Next
Application.OnTime EarliestTime:=when, Procedure:="closeWB", schedule:=False
On Error GoTo 0
End Sub