Hi Khalil
Start here
http://www.rondebruin.nl/print.htm#Hide
Maybe this one ?
Add you protect en unprotect code lines to the macro
*************************************
Hide Empty rows, Print and unhide the rows
This example will loop through every row in the range
Set rng = Sheets("Sheet1").Range("A1:A30")
If every cell in column A:G is empty it will hide that row.
After the loop it print the sheet and then unhide the rows.
Change "A1:G1" in the macro to the cells you want.
You can also use this with non contiguous ranges like "B1,D1:G1"
Sub Hide_Print_Unhide()
Dim rw As Long
Dim rng As Range
Dim cell As Range
Application.ScreenUpdating = False
Set rng = Sheets("Sheet1").Range("A1:A30")
With rng.Columns(1)
For Each cell In rng
If Application.WorksheetFunction.CountA( _
.Parent.Cells(cell.Row, 1).Range("A1:G1")) = 0 Then _
.Parent.Rows(cell.Row).Hidden = True
Next cell
.Parent.PrintOut
.EntireRow.Hidden = False
End With
Application.ScreenUpdating = True
End Sub

Signature
Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm
> Hi,
> I need a macro (VBA Code) to:
[quoted text clipped - 7 lines]
>
> Khalil