Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in
x
or
x
x
Register
x

or

How to print specific sheet based on cell values in Excel?

Have you ever tried to print some specific sheets based on a cell value? In this article, I will talk about some examples about this issue, if you are interested in this problem, please go on.

Print sheet based on a cell with VBA

Print sheet based on adjacent cell with VBA


Print sheet based on a cell with VBA


Supposing there are two sheets, you want to print Sheet1 or Sheet2 or both sheets based on Cell A1 in the Sheet1. Please do as below:

In this case, enter 1 indicates to print the first sheet, enter 2 to print the second sheet, and 3 to print both sheets.

1. Enter 1, 2, or 3 as you need to A1 in the first sheet, and press Alt + F11 keys to open Microsoft Visual Basic for Applications window. See screenshot:
doc print sheet by cell 1

2. Click Insert > Module, and paste below code in the Module script. See screenshot:

VBA: Print Sheet based on cell value

Sub PrintStuff()
'UpdayebyExtendoffice20180811
    Dim xRgVal As Variant
    Dim xSheets As Sheets
    Set xSheets = ActiveWorkbook.Worksheets
    xRgVal = xSheets(1).Range("A1").Value
    If (IsNumeric(xRgVal)) And (Len(xRgVal) = 1) Then
        Select Case xRgVal
            Case 1
                xSheets(1).PrintOut
            Case 2
                xSheets(2).PrintOut
            Case 3
                xSheets(1).PrintOut
                xSheets(2).PrintOut
            Case Else
                MsgBox "Enter1,2 or 3 into A1(1 print Sheet1 2 print Sheet2 3 print Sheet1 and Sheet2 ", , "KuTools For Excel"
                Exit Sub
            End Select
    Else
        Exit Sub
    End If
End Sub

 

doc print sheet by cell 2

3. Press F5 key to directly print the sheet(s).


Print sheet based on adjacent cell with VBA

If you have multiple sheets in a workbook, and you want to print one or several sheets based on cell values from this workbook, you can do as below:

1. Create a new sheet named Control Sheet in the workbook you use, and list all sheet name in column A (include or exclude the control sheet as you need). See screenshot:
doc print sheet by cell 3

2. Type “print” in the adjacent cell next to the sheet name if you want to print it. See screenshot shown.
doc print sheet by cell 4

3. Press Alt + F11 keys to enable the Microsoft Visual Basic for Applications window, and click Insert > Module. See screenshot:
doc print sheet by cell 5

4. Paste below code to the Module, and press F5 key to run the code.

VBA: Print based on adjacent cell

Sub CreateControlSheet()
'UpdatebyExtendoffice20170811
    Dim i As Integer
    Dim xCSheetRow As Integer
    Dim xSName As String
    Dim xCSheet As Variant
    Dim xRgVal As String
    On Error Resume Next
    xSName = "Control Sheet"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set xCSheet = ActiveWorkbook.Worksheets(xSName)
    xCSheetRow = xCSheet.Range("B65536").End(xlUp).Row
    For i = 2 To xCSheetRow
        xRgVal = xCSheet.Range("B" & i).Value
        If xRgVal = "Print" Or xRgVal = "print" Then
            If xCSheet.Range("A" & i).Value <> "" Then
                ActiveWorkbook.Worksheets(xCSheet.Range("A" & i).Value).PrintOut
            End If
        End If
    Next
    xCSheet.Delete
    ActiveWorkbook.Worksheets.Add
    ActiveSheet.Name = "Control Sheet"
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Sheet Name"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Print?"
    For i = 1 To ActiveWorkbook.Worksheets.Count
        Range("A" & i + 1).Value = ActiveWorkbook.Worksheets(i).Name
    Next
    Cells.Columns.AutoFit
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

 doc print sheet by cell 6

After running the code, the sheet(s) will be printed right now, and at the same time, a new Control Sheet will replace the old one.

Tip.If you have Kutools for Excel’s Create List of Sheet Names utility, you can quickly create a list of all sheet name in a new sheet with a clickable link.It’s full function without limitation in 60 days, please download and have a free trial now.


doc print sheet by cell 7

Recommended Productivity Tools for Excel

Kutools for Excel Helps You Always Finish Work Ahead of Time, and Stand Out From Crowd

  • More than 300 powerful advanced features, designed for 1500 work scenarios, increasing productivity by 70%, give you more time to take care of family and enjoy life.
  • No longer need memorizing formulas and VBA codes, give your brain a rest from now on.
  • Become an Excel expert in 3 minutes, Complicated and repeated operations can be done in seconds, 
  • Reduce thousands of keyboard & mouse operations every day, say goodbye to occupational diseases now.
  • 110,000 highly effective people and 300+ world-renowned companies' choice.
  • 60-day full features free trial. 60-day money back guarantees. 2 years of free upgrade and support.

Brings Tabbed Browsing and Editing to Microsoft Office, Far More Powerful Than The Browser's Tabs

  • Office Tab is designed for Word, Excel, PowerPoint and Other Office Applications: 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!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.