How to print certain pages or worksheet based on cell value in Excel?
Have you ever tried to print certain page or worksheet based on a cell value in Excel? And how to achieve it? Methods in this article can help you to solve it in details.
Print certain page based on cell value with VBA code
Print certain worksheet based on cell value with VBA code
Print certain page based on cell value with VBA code
For example, you want a certain page such as page 1 of current worksheet to be printed automatically when entering the page number 1 into cell A1 in current worksheet. You can do as follows to achieve it.
1. Select the cell contains the page number you want to print based on, then press Alt and F11 keys simultaneously to open the Microsoft Visual Basic for Applications window. Then click Insert > Module.
2. Then the Microsoft Visual Basic for Applications window pops up, please copy and paste the following VBA code into the Code window.
VBA code: Print page based on cell value
Option Explicit
Sub Print_Pages()
Dim xPage As Integer
Dim xYesorNo As Integer
With ActiveCell
If Not IsEmpty(.Value) And IsNumeric(.Value) Then
xPage = .Value
Else: MsgBox "Please specify a cell and enter a page in cell"
Exit Sub
End If
End With
xYesorNo = MsgBox("Ready to print page" & xPage & " ", vbYesNo, "Kutools for Excel")
If xYesorNo = vbYes Then
ActiveSheet.PrintOut from:=xPage, To:=xPage, preview:=True
Else
Exit Sub
End If
End Sub
3. Press F5 key to run the code. In the popping up Kutools for Excel dialog box, click the Yes button to print the certain page, or click the No button to exit the dialog box if you don’t want to print. See screenshot:
Then the preview window of the certain page of current worksheet opens, please click the Print button to start printing.
Print certain page based on cell value with VBA code
Supposing you want to print the active worksheet when value in cell B2 of this sheet equals to number 1001. You can achieve it with the following VBA code. Please do as follows.
1. Right click the Sheet Tab that you want to print based on cell value, and then click View Code from the right-clicking menu.
2. Then the Microsoft Visual Basic for Applications window pops up, please copy and paste the following VBA code into the Code window.
VBA code: Print worksheet based on cell value
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCell As Range, xYesorNo As Integer
Set xCell = ActiveSheet.Range("B2")
If Application.Intersect(Target, xCell) Is Nothing Then Exit Sub
If xCell.Value = 1001 Then
xYesorNo = MsgBox("Ready to print the specified worksheet? ", vbYesNo, "Kutools for Excel")
If xYesorNo = vbYes Then
ActiveSheet.PrintOut
Else
Exit Sub
End If
End If
End Sub
Note: You can change the cell and cell value in the code as you need.
3. Press Alt + Q to close the Microsoft Visual Basic for Applications window.
When entering number 1001 into cell B2, a Kutools for Excel dialog box pops up, please click the Yes button to start printing. Or click the No button to exit the dialog box directly without printing. See screenshot:
Related articles:
- How to create a dynamic print area in Excel?
- How to only print the last page of a worksheet in Excel?
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!




