ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Clean Up without reducing print window. (https://www.excelbanter.com/excel-programming/404008-clean-up-without-reducing-print-window.html)

Ryan Hess

Clean Up without reducing print window.
 
Currently I have a macro that searches column A row 9+ for a numeric value.
If no value is found in column A of that row, the row is deleted and all
other rows move up. The macro does this function just fine. The problem is,
it shrinks the print window when it deletes all these rows. Is there a way
to edit this macro so that it still deletes all the rows with nothing in
column A, still moves all rows with a value in column A up BUT does not
shrink the print window?

Code I currently use:

Sub CleanUp()

Dim wS1 As Worksheet
Dim DeleteValue As String
Dim rng As Range
Dim calcmode As Long

Set wS1 = Workbooks("Order Form.xls").Sheets("Order Form")

wS1.Unprotect Password:="xxxxx"

With Application
calcmode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

DeleteValue = ""

With ActiveSheet

.AutoFilterMode = False

.Range("A9:A" & .Rows.Count).AutoFilter Field:=1,
Criteria1:=DeleteValue

With .AutoFilter.Range
On Error Resume Next
Set rng = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not rng Is Nothing Then rng.EntireRow.Delete
End With

.AutoFilterMode = False
End With

With Application
.ScreenUpdating = True
.Calculation = calcmode
End With

wS1.Protect Password:="xxxxx"
ActiveSheet.Range("A10").Select

End Sub

Thank you!

Ryan Hess

Clean Up without reducing print window.
 
EDIT:

I think I'll keep this as it is. I do however have another Macro that I
use to restore the deleted rows. Is there a simple function/code I can enter
into this Macro to restore the Print Area to my desired range? For example,
my Clean Up macro reduces the Print Area to A1:G34. Then I run my Restore
macro and want the Print Area to change to A1:G109.

Thank you!

JLGWhiz

Clean Up without reducing print window.
 
Don't set the print area until just before the pring command. That way, it
is not subject to change.

ActiveSheet.PageSetup.PrintArea = Range("A1:G109")
ActiveSheet.PrintOut

"Ryan Hess" wrote:

EDIT:

I think I'll keep this as it is. I do however have another Macro that I
use to restore the deleted rows. Is there a simple function/code I can enter
into this Macro to restore the Print Area to my desired range? For example,
my Clean Up macro reduces the Print Area to A1:G34. Then I run my Restore
macro and want the Print Area to change to A1:G109.

Thank you!


Ryan Hess

Clean Up without reducing print window.
 
That works great JLGWhiz!

Thanks again!


"JLGWhiz" wrote:

Don't set the print area until just before the pring command. That way, it
is not subject to change.

ActiveSheet.PageSetup.PrintArea = Range("A1:G109")
ActiveSheet.PrintOut

"Ryan Hess" wrote:

EDIT:

I think I'll keep this as it is. I do however have another Macro that I
use to restore the deleted rows. Is there a simple function/code I can enter
into this Macro to restore the Print Area to my desired range? For example,
my Clean Up macro reduces the Print Area to A1:G34. Then I run my Restore
macro and want the Print Area to change to A1:G109.

Thank you!



All times are GMT +1. The time now is 07:40 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com