Written by Allen Wyatt (last updated April 16, 2024)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365
In Lance's office they often have to select multiple worksheets in a workbook in order to print them or to create PDFs. When done, the worksheets remain selected. This causes a potential problem if someone forgets to deselect the worksheet group. If someone makes a change in a cell, the change occurs on all the other selected worksheets, as well; this is how Excel is designed. Lance wonders if there is a way to either stop the change being made on multiple worksheets or automatically have the multiple worksheets deselected after they are done with an action.
When you forget to deselect a group of worksheets, it can be frustrating that what you intended as a single-worksheet change ends up on all the worksheets. As Lance notes, this behavior is actually built into Excel; it is by design.
Perhaps the easiest solution is to simply change how you print your worksheets. You could select all the worksheets you want to print, and then do the actual printing by using a simple macro:
Sub PrintSelectedSheets() ActiveWindow.SelectedSheets.PrintOut ActiveSheet.Select End Sub
The macro prints and, once that is done, deselects the group of worksheets so that only a single worksheet (the active one) is selected. The only downside to this approach is remembering to print via the macro, so it will take a bit of training for users.
This won't, of course, help you in situations where you selected a group of worksheets for some purpose other than printing. In those instances, you are left with remembering to deselect the group. (Or, if you can handle the action via macro, you could adapt the above to work for you.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (7708) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
Want a list of all the worksheets in your workbook? Here's a short, handy macro that will place all the worksheet names ...
Discover MoreIt is inevitable that if you spend time creating a chart you will want to print that chart on your printer. Here's how ...
Discover MoreNeed to print an entire workbook? It's as easy as adding a single line of code to your macros.
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2024-04-16 08:20:42
Alan Cannon
A different approach would be to use a BeforeSave event handler macro stored in the ThisWorkbook module. This would prevent the situation even if the selected sheets weren't being printed. I chose BeforeSave instead of BeforeClose because the workbook would still be saved with the multisheet selection if the BeforeClose event were used. Here's my suggestion.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveWindow.SelectedSheets.Count > 1 Then
ActiveSheet.Select
End If
End Sub
2020-08-24 22:14:05
John Mann
Why not have a macro triggered by the print event which does the select active worksheet?
2020-08-24 09:58:59
Harlan Eshleman
Here is a page that gives a macro that will warn you if you are trying to make edits when multiple sheets are selected. I think that it would allow you to print, since that shouldn't invoke the worksheet change event.
https://www.extendoffice.com/documents/excel/4166-excel-prevent-multiple-sheet-selection.html
2020-08-22 06:59:01
Elliot Penna
"The only downside to this approach is remembering to print via the macro, so it will take a bit of training for users."
Couldn't you disable print on opening the workbook, and enable it within the printing macro, print, and then disable printing again before exiting macro? That would, in effect, force people to use the macro to print. After all, if you are putting your trust in training, why not train everyone to select a single sheet on opening?
Better yet, why not have a macro on opening, or on closing, select a single sheet?
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.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments