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