Forum Discussion

BobsYourUncle54's avatar
BobsYourUncle54
Copper Contributor
Apr 29, 2020

How to prevent selected cells from printing, but have them visible?

I have created an extensive costing sheet for a sales rep that gets filled in and presented to a customer. Part of one column contains dollar figures that need to be blank when printed, but must rem...
  • JKPieterse's avatar
    Apr 29, 2020

    BobsYourUncle54 Add a new cell style (see https://jkp-ads.com/articles/styles02.asp). Name the style HideWhenPrinting. Uncheck all boxes in the new style dialog, then click the Format button. On the Font tab, change the font to white and immediately change it back to Automatic. Click OK twice.

    Highlight all cells which need to be absent from the print and set their style to the new HideWhenPrinting style.

    Now hit alt+F11 to go to the VBA Editor. Double-click on the ThisWorkbook module in the project explorer, past this code:

    Option Explicit
    
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        HideCells
        Application.OnTime Now, "'" & ThisWorkbook.FullName & "'!ShowAgain"
    End Sub
    

    Insert a new module (Insert, Module form the menu) and paste this code:

    Option Explicit
    
    Sub HideCells()
        With ActiveWorkbook.Styles("HideWhenPrinting").Font
            .ThemeColor = 1
        End With
    End Sub
    
    Public Sub ShowAgain()
        With ActiveWorkbook.Styles("HideWhenPrinting").Font
            .ColorIndex = xlAutomatic
        End With
    End Sub
    

    That should do it. I've attached a sample workbook with everything in place.

Resources