Hi, bosetan,
I think so - it depends on if you ever would like to indicate which range? 
You could get the information into the range object when building it - this example will delete the range from B to E and get the cells up to fill (not to the left):
Public Sub EF916684_2()
Dim lngLast As Long
Dim lngCounter As Long
Dim rngDelete As Range
Const cstrCOL As String = "D"
lngLast = Cells(Rows.Count, cstrCOL).End(xlUp).Row
For lngCounter = 2 To lngLast
If WorksheetFunction.CountIf(Range(Cells(2, cstrCOL), Cells(lngCounter, cstrCOL)), Cells(lngCounter, cstrCOL)) > 1 Then
If rngDelete Is Nothing Then
Set rngDelete = Range(Cells(lngCounter, 2), Cells(lngCounter, 5))
Else
Set rngDelete = Union(rngDelete, Range(Cells(lngCounter, 2), Cells(lngCounter, 5)))
End If
End If
Next lngCounter
If Not rngDelete Is Nothing Then
rngDelete.Delete shift:=xlUp
End If
Set rngDelete = Nothing
End Sub
Ciao,
Holger
Bookmarks