You would have to write code to hide the row in order for it not to be
printed. Also, how would you "reference" a row from a checkbox? You would
probably need to use a linked cell to identify the row that you want to
suppress.
I need to attach the code (for each individual row) to
a "checkbox" so I can select the rows I don't want
printed. I do not want the row to disappear or "hide"
from the worksheet, just not print if the checkbox
contains a check.
1. Use checkboxes from the Forms Toolbar; not the Control Toolbox (the
former are more stable when used on worksheets). Ypu will probably want to
uncheck "Print Object" in the Format Control dialog.
2. Right-click on each one and set its LinkedCell property to a cell in the
row that the checkbox relates to (say in column Z, if that's far enough
out). You can even hide the column as it serves no purpose other than to
carry the value of the checkboxes.
3. Put the following code in the ThisWorkbook code module:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range
With ActiveSheet
For Each c In Intersect(.UsedRange, .Range("Z:Z"))
If c = True Then c.EntireRow.Hidden = True
Next
Application.EnableEvents = False
On Error GoTo ErrorHandler
.PrintOut
Application.EnableEvents = True
End With
ErrorHandler:
MsgBox "Error " & Err.Number & vbNewLine & Err.Description, _
vbOKOnly + vbCritical, "Error"
ActiveSheet.UsedRange.EntireRow.Hidden = False
Application.EnableEvents = True
End Sub
It's really pretty messy but hopefully will put you on the right track.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.