Forcing Worksheets to Print on a New Sheet

Eva often prints entire workbooks at once. When she does, she prints double-sided so that she can conserve paper. However, this sometimes means that the first page of a worksheet will print on the back of the last page of the previous worksheet. Eva wonders if there is a way to make sure that a worksheet always starts printing on a new piece of paper when printing entire workbooks double-sided.

There is a manual way to approach this and a more automatic method. The manual method involves figuring out which of your worksheets require an odd number of pages to print, and then forcing that worksheet to use an even number of pages. Once you identify such a worksheet, all you need to do is go to the end of that worksheet (just below the last row) and insert a page break. (Display the Page Layout tab of the ribbon and click the Breaks tool. You can then choose Insert Page Break.)

The automatic method involves using a macro to print your workbook instead of using the regular Print command. The macro, in essence, prints each worksheet individually, one after the other. Thus, if you have 5 worksheets, then the macro prints them as 5 separate print jobs. Each will begin on the front of a new page. Here’s the macro:

Public Sub PrintAllSheets()
    Dim wks As Worksheet

    For Each wks In ActiveWorkbook.Worksheets
        wks.PrintOut
    Next
    Set wks = Nothing
End Sub

This macro, as stated, prints all the worksheets in the workbook. If you want to print a subset of the worksheets, then you could modify the macro to print only those worksheet selected when the macro is executed.

Sub PrintSomePages()
    Dim wks As Worksheet

    For Each wks In ActiveWindow.SelectedSheets
        wks.PrintOut
    Next
    Set wks = Nothing
End Sub

Either (or both) of these macros could easily be added to your Quick Access Toolbar so that you can print exactly what you want (all or some) with just the click of a button.