View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein \(MVP - VB\)[_1485_] Rick Rothstein \(MVP - VB\)[_1485_] is offline
external usenet poster
 
Posts: 1
Default Code runs to slow

Yeah, I figured it might come out just a tad faster.<g Thanks for carrying
out the experiment for me.

Rick


"Patrick C. Simonds" wrote in message
...
It went from 8 minutes 42 seconds to only 4 seconds. I would say that
is a very dramatic improvement (with 65536 rows involved).




"Rick Rothstein (MVP - VB)" wrote in
message ...
I know you have a different solution now, but your comment about the speed
of the code I posted for you earlier got me to thinking. Probably the
speed problem is due to the continual hiding of the rows one-by-one. I'm
thinking the code below should be more efficient. If you have the chance,
I would be interested in how fast the code below is compared to the code I
gave you earlier.

Sub HideRowIfZeroInJ()
Dim R As Range
Dim RowsToHide As Range
Dim LastRow As Long
Application.ScreenUpdating = False
With Worksheets("Sheet3")
LastRow = .Cells(Rows.Count, "J").End(xlUp).Row
For Each R In .Range("J3:J" & CStr(LastRow))
If R.Value = 0 And R.Value < "" Then
If RowsToHide Is Nothing Then
Set RowsToHide = R
Else
Set RowsToHide = Union(R, RowsToHide)
End If
End If
Next
If Not RowsToHide Is Nothing Then RowsToHide.EntireRow.Hidden = True
End With
Application.ScreenUpdating = True
End Sub

Rick



"Patrick C. Simonds" wrote in message
...
Thank you sir.

Having never used Filters before, I spent some time in the help files
learning how to use Filters, and I have to say it is much fast.



"Dave Peterson" wrote in message
...
Have you thought about just using Data|Filter|Autofilter the range
(column J)
and showing all the rows that don't have the cell in column J equal to
0?

"Patrick C. Simonds" wrote:

We have a spreadsheet into which we dump a large amount of data
(averaging
around 55,000+ rows). We then use formulas to detect error in the data
so
that we can go back into the original program and correct those
errors. What
the code below does (my thanks to Rick Rothstein, MVP -VB) is hides
all rows
which do not have errors leaving only the rows with errors (saves one
from
having to scroll through more than 55,000 rows in search of errors).

My problem is that it takes to long to hide the rows (in excess of 5
minutes). Does anyone have any thoughts on how to speed up the
process?

Sub HideRowIfZeroInG()
'
'
Application.ScreenUpdating = False

Dim R As Range
Dim LastRow As Long
With Worksheets("Negative Miles and Missing Perf")
LastRow = .Cells(Rows.Count, "J").End(xlUp).Row
If LastRow 65536 Then LastRow = 65536
For Each R In .Range("J3:J" & CStr(LastRow))
If R.Value = 0 And R.Value < "" Then R.EntireRow.Hidden = True
Next
End With

Application.ScreenUpdating = True

End Sub

--

Dave Peterson