In ThisWorkbook module:
Code:Option Explicit Private bSaved As Boolean '-- used to pass value from BeforSave to AfterSave Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) bSaved = Me.Saved '-- remember the current Saved status If Me.Saved Then Me.Saved = False '-- assume the workbook was not Saved MsgBox "BeforeSave" '-- Code for BeforeSave here if required Application.OnTime Now, "ThisWorkbook.Workbook_AfterSave" '-- the call to Workbook_AfterSave will be delayed until the saving is '-- completed or cancelled End Sub Private Sub Workbook_AfterSave() '-- a fake event that will be called by BeforeSave If Me.Saved = False Then '-- Save has been cancelled either in code or in SaveAsUI If bSaved Then Me.Saved = True '-- reset to previous Saved status Exit Sub '-- Save was not occured so cancel AfterSave End If MsgBox "AfterSave" '-- Code for AfterSave here End Sub




Reply With Quote
