Sub DeleteRowAfterDate()
Dim Rng As range, cell As range
Dim delRng As range, dateRng As range
Dim dateCol As Integer
Dim cutoffDate As Date
Dim theString As String
On Error Resume Next '// Error handling for canceling the range inputbox
'// Prompt user for column containing the date range to check
Do
Set dateRng = Application.InputBox( _
Prompt:="Select a cell in the Date Column", _
Title:="Date Column Select", _
Type:=8)
'// Exit Sub if nothing was selected or the Cancel 'x' button was selected
If dateRng Is Nothing Then Exit Sub
'// Reprompt if more than one column was selected
Loop While dateRng.Columns.Count > 1
On Error GoTo 0 '// Resume default error handling
dateCol = dateRng.Column
theString = Application.InputBox("Enter A Date")
'// Cancel 'x' button was selected then exit sub
If theString = "False" Then Exit Sub
Do While Not IsDate(theString)
theString = Application.InputBox("Date Invalid! Enter a Valid Date")
'// Cancel 'x' button was selected then exit sub
If theString = "False" Then Exit Sub
Loop
cutoffDate = DateValue(theString)
Set Rng = range(Cells(2, dateCol), Cells(65535, dateCol).End(xlUp))
For Each cell In Rng
If IsDate(cell.Value) And cell.Value > cutoffDate Then
If delRng Is Nothing Then
Set delRng = cell
Else
Set delRng = Union(delRng, cell)
End If
End If
Next cell
If Not delRng Is Nothing Then delRng.EntireRow.Delete
End Sub