Option Explicit
Sub JenMurphy()
Dim a, tmp, i As Long, j As Long
a = ActiveSheet.ListObjects("Table1").DataBodyRange '<-- *** Just check the Table name ***
ReDim Preserve a(1 To UBound(a, 1), 1 To 4)
Dim r As Range, c As Range
Set r = Range("D5", Cells(Rows.Count, "D").End(xlUp))
i = 1
For Each c In r
a(i, 4) = Evaluate(CLng(c) & "-DATE(YEAR(" & CLng(c) & "),1,1)+1")
i = i + 1
Next c
For i = 1 To UBound(a, 1)
For j = i + 1 To UBound(a, 1)
If a(i, 4) > a(j, 4) Then
tmp = a(j, 1): a(j, 1) = a(i, 1): a(i, 1) = tmp
tmp = a(j, 2): a(j, 2) = a(i, 2): a(i, 2) = tmp
tmp = a(j, 3): a(j, 3) = a(i, 3): a(i, 3) = tmp
tmp = a(j, 4): a(j, 4) = a(i, 4): a(i, 4) = tmp
End If
Next j
Next i
Range("C5").Resize(UBound(a, 1), 3) = a
End Sub