View Single Post
  #5   Report Post  
KL
 
Posts: n/a
Default

Hi,

Another way of doing the same:

Sub Test()
With ActiveSheet
For i = .Cells(.Rows.Count, "D").End(xlUp).Row To 2 Step -1
Select Case .Cells(i, "D").Value
Case "DONCASTER", "HALIFAX", "LEEDS"
If rng < "" Then rng = rng & ","
rng = rng & .Cells(i, "D").Address
End Select
Next i
.Range(rng).EntireRow.Delete
End With
End Sub

Regards,
KL

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
djhs,

You can do only two at a time (using OR - record a macro for the syntax),
so it's easier to just copy and paste, or loop through using a variable as
the parameter.

HTH,
Bernie
MS Excel MVP


"djhs63" wrote in message
...
Bernie,

thanks very much - is there any way to concatenate conditions in one
statement, like Criteria1:="DONCASTER or HALIFAX or LEEDS"?

Regards,
djhs

"Bernie Deitrick" wrote:

djhs,

The typical code to do that is:

On Error Resume Next
Columns("D:D").AutoFilter Field:=1, Criteria1:="DONCASTER"
Range("D2:D65536").SpecialCells(xlCellTypeVisible) .EntireRow.Delete

Repeat the two lines above for each condition, then use the line

Columns("D:D").AutoFilter Field:=1

to turn off the filter, and your macro is done.

HTH,
Bernie
MS Excel MVP

"djhs63" wrote in message
...
I want to record a macro to delete all rows in a worksheet where a
specified
column entry matches a condition (e.g. "where column D=DONCASTER or
LEEDS
or
HALIFAX")