Thread: Speed Up Macro
View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 6,953
Default Speed Up Macro

Sub Button15_Click()
ActiveSheet.Unprotect

calc = Application.Calculation
Application.Calculation = xlManual
ActiveSheet.DisplayAutomaticPageBreaks = False
For Each cell In Range("AL35:AL609")
cell.EntireRow.Hidden = cell.Value = 0
Next cell
Application.Calculation = calc
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

or

Sub Button15_Click()
Dim rng as Range
ActiveSheet.Unprotect

calc = Application.Calculation
Application.Calculation = xlManual
ActiveSheet.DisplayAutomaticPageBreaks = False
Range("AL35:AL609").EntireRow.Hidden = False
For Each cell In Range("AL35:AL609")
if cell.Value = 0 then
if rng is nothing then
set rng = cell
else
set rng = Union(rng,cell)
end if
End if
Next cell
if not rng is nothing then
rng.entireRow.Hidden = True
End if
Application.Calculation = calc
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


--
Regards,
Tom Ogilvy

"Sean" wrote:

I have a macro that takes over 45 min to run at times. Is there a better way
to do this, or speed it up at all. The macro I use is as follows, it does
need to be specific to the column and the rows that it is currently set to...

Sub Button15_Click()
ActiveSheet.Unprotect
For Each cell In Range("AL35:AL609")
cell.EntireRow.Hidden = cell.Value = 0
Next cell
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Thanks,

Sean