In Excel 27 and earlier the basic approach would be to trap the print event with a Workbook_BeforePrint macro hide the unused pages allow the printout to occur then unhide the pages. Here is some sample code 'This code must be installed in the ThisWorkbook code pane. It won't work at all if installed anywhere else!nPrivate Sub Workbook_BeforePrint(Cancel As Boolean)nCall Now() UnhideUnusedPagesnEnd Sub n'This code should be installed in a regular module sheetnSub HideUnusedPages(Optional b As Boolean) 'Parameter b not used but takes macro off list in Macro Selector dialognDim cel As RangenWith Worksheets(Requisition) 'The worksheet where content needs to be hidden before printingn If .Range(C3) < abc Then .Range(A3Z25). = Truen If .Range(C26) < abc Then .Range(A26Z53). = Truen If .Range(C54) < abc Then .Range(A54Z78). = Truen If .Range(C79) < abc Then .Range(A79Z13). = TruenEnd WithnEnd Sub Sub UnhideUnusedPages(Optional b As Boolean)nWith Worksheets(Requisition)n . = FalsenEnd WithnEnd Sub horizontal-rule In Excel 21 and later the Workbook_BeforePrint event doesn't run before displaying the dialog showing what will print and what does not. I believe it will still run once you click the Print button but do not have a printer available to me to test it. Should that approach not work you will need to provide a button on your worksheet to print the worksheet out. That button will use code like the following 'This code should be installed in a regular module sheetnSub PrintUsedPages()nCall HideUnusedPagesnWorksheets(Requisition).PrintOutnCall UnhideUnusedPagesnEnd Sub Sub HideUnusedPages(Optional b As Boolean) 'Parameter b not used but takes macro off list in Macro Selector dialognDim cel As RangenWith Worksheets(Requisition) 'The worksheet where content needs to be hidden before printingn If .Range(C3) < abc Then .Range(A3Z25). = Truen If .Range(C26) < abc Then .Range(A26Z53). = Truen If .Range(C54) < abc Then .Range(A54Z78). = Truen If .Range(C79) < abc Then .Range(A79Z13). = TruenEnd WithnEnd Sub Sub UnhideUnusedPages(Optional b As Boolean)nWith Worksheets(Requisition)n . = FalsenEnd WithnEnd Sub