Saving an Unsavable Workbook

Written by Allen Wyatt (last updated June 29, 2024)
This tip applies to Excel 2007, 2013, 2016, 2019, 2021, and Excel in Microsoft 365


Bill has a "before save" macro that tests three cells. If the cells are empty, then the macro stops the user from saving. In other words, they are required to fill in the cells before they can save the workbook. Bill would like to save this workbook as a template, but when he clears the three cells, the macro also stops him from saving as a template. He would like the template to be "clean," with a default of the three cells being empty. Users would create a new workbook based on the template and then (correctly) not be able to save unless the cells are filled in. Bill wonders how he can save the workbook as a template, with the three cells empty.

There are several approaches you could take to save your template. The first is to change the name of your workbook to something rather esoteric, such as X27TT3W.xlsm. Then, add some logic to your "before save" macro that checks to see if the name of the base workbook is X27TT3W. If it is, then allow the workbook (or template) to be saved regardless of the condition of the three cells. Once the template is saved, you can then rename it in Windows to your desired name, and it can be shared with your users. Unless they guess the esoteric name you chose, they won't be able to save the workbook without making sure the three cells are filled in.

Another approach is to simply add another event handler to your workbook—this one that executes when you first open the workbook—to clear the contents of the three cells. This could be something simple, like this:

Private Sub Workbook_Open()
    Sheet1.Cells(1,1).Clear
    Sheet1.Cells(2,1).Clear
    Sheet1.Cells(3,1).Clear
End Sub

This macro clears the cells at A1:A3. If you want to have it clear a different range, just change the three lines to reflect which cells you want to clear. Then, put something in the three cells (so that it passes your testing in the "before save" macro), and save it as a template.

Another approach that is very easy to implement is to simply disable events before you save the template. This is not done within a macro, but within the Immediate window in the Visual Basic Editor. All you need to do is enter this single line:

Application.EnableEvents = False

Immediately save your workbook as a template, and then enter the following line in the Immediate window of the Visual Basic Editor:

Application.EnableEvents = True

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (13547) applies to Microsoft Excel 2007, 2013, 2016, 2019, 2021, and Excel in Microsoft 365.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

A Real AutoSave

When you enable AutoSave in Word, it doesn't really save your document; it just saves a temporary file that allows your ...

Discover More

Weird Pasting Behavior

The Clipboard is integral to editing data in your worksheets. What happens, though, when the Clipboard doesn't allow you ...

Discover More

Nudging a Graphic

If you need to move a graphic just a little bit in one direction or another, you can do so by using the techniques in ...

Discover More

Dive Deep into Macros! Make Excel do things you thought were impossible, discover techniques you won't find anywhere else, and create powerful automated reports. Bill Jelen and Tracy Syrstad help you instantly visualize information to make it actionable. You’ll find step-by-step instructions, real-world case studies, and 50 workbooks packed with examples and solutions. Check out Microsoft Excel 2019 VBA and Macros today!

More ExcelTips (ribbon)

Summing Only Visible Values

When you use SUM to determine the total of a range of values, Excel doesn't really pay attention to whether the values ...

Discover More

Delaying in a Macro

At times, you may want your macro to pause execution. This tip presents four different ways you can add a delay into your ...

Discover More

Running a Macro when a Worksheet is Deactivated

When you change from one worksheet to another, you may want to have Excel automatically run a macro for the worksheet you ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] (all 7 characters, in the sequence shown) in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is four more than 2?

There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.