السلام عليكم ورحمة الله وبركاته
الكود ده عباره عن امر طباعة بشرط ان يكون في العمود G ارقام المشكله انه مش بيطبع لو الصفحه lمعمول ليها حماية عايز اطبع عادى لو الصفحه معمول ليها حماية
Sub Print()
Dim Arr, SH As Worksheet, Rng As Range, Cell As Range, I As Long
Set SH = ActiveSheet
With SH
ReDim Arr(0 To .HPageBreaks.Count + 1)
If Len(.PageSetup.PrintTitleRows) Then
Set Rng = .Range(.PageSetup.PrintTitleRows)
Arr(0) = Rng.Rows(Rng.Row + Rng.Rows.Count).Row
Else
Arr(0) = 1
End If
For I = 1 To .HPageBreaks.Count
Arr(I) = .HPageBreaks(I).Location.Row
Next I
Arr(UBound(Arr)) = .Cells.SpecialCells(xlCellTypeLastCell).Row + 1
For I = UBound(Arr) To (LBound(Arr) + 1) Step -1
Set Rng = Intersect(.Rows(Arr(I - 1) & ":" & (Arr(I) - 1)), .UsedRange, .Columns("G"))
If Not Rng Is Nothing Then
Debug.Print Rng.Address
For Each Cell In Rng
If Cell.Value > 0 Then
.PrintOut From:=I, To:=I
Exit For
End If
Next Cell
End If
Next I
End With
end sub