Sub Macro1()

Dim sheet As Worksheet

Dim usedRange As Range

Set sheet = ActiveSheet

Set usedRange = sheet.usedRange

Dim rowCount As Integer

Dim columnCount As Integer

Dim iRow As Integer

Dim iColumn As Integer

rowCount = usedRange.Rows.Count columnCount = usedRange.Columns.Count

For iRow = rowCount To 1 Step -1

For iColumn = 1 To columnCount

'this is where I get the problems

If ((InStr(1, LCase(usedRange(iRow, iColumn)), "overdue") > 0) Or (InStr(1, LCase(usedRange(iRow, iColumn)), "due") > 0)) Then usedRange.Range(Cells(iRow, 1), Cells(iRow, columnCount)).Delete

End If

Next iColumn

Next iRow

End Sub