ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Deleting rows with Advance Filter in recorded Macro (https://www.excelbanter.com/excel-programming/351343-deleting-rows-advance-filter-recorded-macro.html)

JHL

Deleting rows with Advance Filter in recorded Macro
 
Im using Excel 97. Im not a programmer. Using the macro recorder to learn
coding. Im working on a situation where Im selecting data using the
AutoFilter. Once the criteria is made, I want to delete the rows selected.
The recorder lists it as:

Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:="=DCNSU", Operator:=xlOr, _
Criteria2:="=DUPCTRL"
ActiveCell.Offset(1, 0).Rows("1:65000").EntireRow.Select
Selection.Delete Shift:=xlUp


I changed the rows selection to read 1:65000 because I dont anticipate
the selection ever being larger than 65000 rows. However I cant be exactly
sure, and I would perfer it to reflect variable changing rows? Can someone
tell me how to re-code this?

Thanks in advance.


Tom Ogilvy

Deleting rows with Advance Filter in recorded Macro
 

Rows(Activecell.Row + 1 & ":" & Rows.count).EntireRow.Select



--
Regards,
Tom Ogilvy



"JHL" wrote in message
...
I'm using Excel 97. I'm not a programmer. Using the macro recorder to

learn
coding. I'm working on a situation where I'm selecting data using the
AutoFilter. Once the criteria is made, I want to delete the rows

selected.
The recorder lists it as:

Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:="=DCNSU", Operator:=xlOr, _
Criteria2:="=DUPCTRL"
ActiveCell.Offset(1, 0).Rows("1:65000").EntireRow.Select
Selection.Delete Shift:=xlUp


I changed the rows selection to read "1:65000". because I don't

anticipate
the selection ever being larger than 65000 rows. However I can't be

exactly
sure, and I would perfer it to reflect variable changing rows? Can

someone
tell me how to re-code this?

Thanks in advance.




[email protected]

Deleting rows with Advance Filter in recorded Macro
 
I would try something like this:
Looping through values in Column A and deleting the rows for cells
containg your criteria.
This would be quite slow for 65,000 lines though.
There may be a better way.
And I'm not sure if there are any flaws in my code.



Sub DeleteEntries()

Range("A1").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value = "DCNSU" Or ActiveCell.Value = "DUPCTRL" Then
ActiveCell.EntireRow.Select
Selection.Delete Shift:=xlUp
End If
ActiveCell.Offset(1, 0).Select
Loop

End Sub


Somethinglikeant


JHL

Deleting rows with Advance Filter in recorded Macro
 
Thank You this worked perfectly!

"Tom Ogilvy" wrote:


Rows(Activecell.Row + 1 & ":" & Rows.count).EntireRow.Select



--
Regards,
Tom Ogilvy



"JHL" wrote in message
...
I'm using Excel 97. I'm not a programmer. Using the macro recorder to

learn
coding. I'm working on a situation where I'm selecting data using the
AutoFilter. Once the criteria is made, I want to delete the rows

selected.
The recorder lists it as:

Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:="=DCNSU", Operator:=xlOr, _
Criteria2:="=DUPCTRL"
ActiveCell.Offset(1, 0).Rows("1:65000").EntireRow.Select
Selection.Delete Shift:=xlUp


I changed the rows selection to read "1:65000". because I don't

anticipate
the selection ever being larger than 65000 rows. However I can't be

exactly
sure, and I would perfer it to reflect variable changing rows? Can

someone
tell me how to re-code this?

Thanks in advance.





JHL

Deleting rows with Advance Filter in recorded Macro
 
Thank you, I had a loop performing this, but thought the autofilter would be
faster, and it is.

" wrote:

I would try something like this:
Looping through values in Column A and deleting the rows for cells
containg your criteria.
This would be quite slow for 65,000 lines though.
There may be a better way.
And I'm not sure if there are any flaws in my code.



Sub DeleteEntries()

Range("A1").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value = "DCNSU" Or ActiveCell.Value = "DUPCTRL" Then
ActiveCell.EntireRow.Select
Selection.Delete Shift:=xlUp
End If
ActiveCell.Offset(1, 0).Select
Loop

End Sub


Somethinglikeant




All times are GMT +1. The time now is 04:50 AM.

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