Workbook.BeforeSave Event (Excel)

Occurs before the workbook is saved.

Syntax

expression .BeforeSave(SaveAsUI, Cancel)

expression A variable that represents a Workbook object.

Parameters

Name

Required/Optional

Data Type

Description

SaveAsUI

Required

Boolean

True if the Save As dialog box will be displayed.

Cancel

Required

Boolean

False when the event occurs. If the event procedure sets this argument to True, the workbook isn't saved when the procedure is finished.

Return Value

Nothing

Example

This example prompts the user for a yes or no response before saving the workbook.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ 
        Cancel as Boolean) 
    a = MsgBox("Do you really want to save the workbook?", vbYesNo) 
    If a = vbNo Then Cancel = True 
End Sub

Sample code provided by: Holy Macro! Books, Holy Macro! It’s 2,500 Excel VBA Examples | About the Contributor

This example uses the BeforeSave event to verify that certain cells contain data before the workbook can be saved. The workbook cannot be saved until there is data in each of the following cells: D5, D7, D9, D11, D13, and D15.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   'If the six specified cells do not contain data, then display a message box with an error
   'and cancel the attempt to save.
   If WorksheetFunction.CountA(Worksheets("Sheet1").Range("D5,D7,D9,D11,D13, D15")) < 6 Then
      MsgBox "Workbook will not be saved unless" & vbCrLf & _
      "All required fields have been filled in!"
      Cancel = True
   End If
End Sub

About the Contributor

Holy Macro! Books publishes entertaining books for people who use Microsoft Office. See the complete catalog at MrExcel.com.

See Also

Concepts

Workbook Object

Workbook Object Members