Link to home
Start Free TrialLog in
Avatar of RWayneH
RWayneHFlag for United States of America

asked on

Procedure going thru too many rows of data

In the following code, the MaxRow is huge and causes the process to run a while.  How would I edit the following procedure to instead of using MaxRow, to only run for 500 lines? or as long as there is data in column M?  The file that it is failing on in attached.  When running this procedure the MaxRow value gets huge, and should need to get that big.  This adds significant runtime.  Is there a way to fix this?

Sub DelOOETranslations() 'Assumes that oldest or OOE are first
Dim WS As Worksheet
Dim MaxRow As Long, I As Long
Dim ThisDate As Date
Set WS = ActiveSheet
MaxRow = LastRow
I = 6

Do
'---> Check for Cell if Date and Affect to ThisDate
    If Len(WS.Cells(I, "D")) = 20 And Mid(WS.Cells(I, "D"), 3, 1) = "/" Then
        ThisDate = DateValue(Left(WS.Cells(I, "D"), 10))
    End If
'---> Test if Date captured < now then delete or else increment counter go next line
    If ThisDate < DateValue(Now) Then
        WS.Cells(I, "A").EntireRow.Delete
        MaxRow = MaxRow - 1
    Else
        I = I + 1
    End If
Loop Until I > MaxRow

'---> Advise results to user
'MsgBox ("All date prior to " & DateValue(Now) & " have been deleted with their coresponding rows successfully.")
End Sub

Open in new window

Translation.xlsx
ASKER CERTIFIED SOLUTION
Avatar of Rgonzo1971
Rgonzo1971

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of RWayneH

ASKER

Thanks, both worked.