by Allen Wyatt
(last updated May 9, 2020)
Henry would like a cell to contain a number that increments every time a copy of the worksheet is printed. Thus, if the cell contains the number 9 and he prints 13 copies of the worksheet, each copy would contain, in that cell, the numbers 9, 10, 11, and on through 21.
This, as you might guess, is best done with a macro. All that needs to be done is to print the worksheet however many times is desired, incrementing the value of the cell after each print. In this case, I'm going to assume that the cell to be incremented is B7. The following macro will handle the process:
Sub PrintNumberedCopies() Dim iCopies As Integer Dim J As Integer Dim r As Range ' Specify the cell to modify Set r = Range("B7") ' Get the number of copies. iCopies = Val(InputBox("Number of copies to print:")) If iCopies > 0 Then ' Loop iCopies times, printing once per loop For J = 1 to iCopies ActiveSheet.PrintOut r.Value = r.Value + 1 Next J End If End Sub
Note that the macro asks the user how many copies to print, and then it goes about printing each one, individually. After each printout, it increments the value stored in cell B7. If the user enters something that does not translate to a number of copies, then nothing is printed.
Remember that if you want the value number in B7 to always be up to date, you'll need to save the workbook sometime after your last printing. In addition, if you print using some method other than this macro, then the value in B7 will not reflect the number of actual copies printed.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (12135) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Office 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!
When you press the Print button in Excel, you want your worksheet to go to your printer and produce output as you expect. ...Discover More
If a printout of your worksheet requires multiple pages, you may want to specify the order in which Excel prints those ...Discover More
You can modify Excel's BeforePrint event handler to change how the printing process occurs. Unfortunately, though, Excel ...Discover More
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
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.