Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim cell As Range
Dim lr As Long
Dim r As Long
' See if any cell in column AD updated
Set rng = Intersect(Target, Range("AD:AD"))
' Exit if no cell in column AD updated
If rng Is Nothing Then Exit Sub
' Loop through updated cells
Application.EnableEvents = False
For Each cell In rng
' See if column AD updated with a valid date
If IsDate(cell) Then
' Find last row with data in column D
lr = Cells(Rows.Count, "D").End(xlUp).Row
' Move row to bottom of sheet
r = cell.Row
Rows(r).Cut
Cells(lr + 1, "A").Select
ActiveSheet.Paste
Application.CutCopyMode = False
' Delete old row
Rows(r).Delete
End If
Next cell
Application.EnableEvents = True
End Sub