Macro for deleting a row with specific criteria in a cell

Closed
MacroNovice Posts 2 Registration date Tuesday 18 June 2013 Status Member Last seen 25 June 2013 - 18 Jun 2013 à 18:13
 Blocked Profile - 26 Jun 2013 à 09:08
Hello,

I've got a spreadsheet with many rows and columns, and I'd like to delete specific rows based on criteria I pick. For example, if my criteria is in column FG, and the criteria is the number 1, delete the row. I've got the following macro in VBE, but I have to run it multiple times for it to delete all the appropriate rows. Can someone help me debug it? Thanks.

Sub DeleteRows()

Dim MyCol As String
Dim MyVal As Variant
Dim i As Integer

MyCol = InputBox("Column to evaluate?", "Column Search", "FG")
MyVal = InputBox("Value to look for", "search value", 1)
For i = 1 To Range(MyCol & "65536").End(xlUp).Row Step 1
If Application.WorksheetFunction.CountIf(Range("A" & i & ":FZ" & i), MyVal) > 0 Then
Range("A" & i).EntireRow.Delete
End If
Next i

End Sub
Related:

2 responses

venkat1926 Posts 1863 Registration date Sunday 14 June 2009 Status Contributor Last seen 7 August 2021 811
19 Jun 2013 à 21:25
when you write a macro for deleting rows you loop from last row to first row and not reverse . rewrite macro
MacroNovice Posts 2 Registration date Tuesday 18 June 2013 Status Member Last seen 25 June 2013
25 Jun 2013 à 12:07
That's just the point... I don't know how to rewrite the macro. I found the one I'm using in another post. Any chance you could give me the code for the looping from last to first?
Blocked Profile
26 Jun 2013 à 09:08
Good Morning.

If you just want to do as the previous poster had mentioned change the following lines in your macro:

MyCol = InputBox("Column to evaluate?", "Column Search", "FG")
MyVal = InputBox("Value to look for", "search value", 1)
For i = Range(MyCol & "65536").End(xlUp).Row to 1 Step -1
If Application.WorksheetFunction.CountIf(Range("A" & i & ":FZ" & i), MyVal) > 0 Then
Range("A" & i).EntireRow.Delete
End If


Hope this gets you closer.