Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range, C As Integer
Set Rng = Me.UsedRange
C = Cells(1, Columns.Count).End(xlToLeft).Column
If Rng(1, C).Value >= Date Then Exit Sub
Application.EnableEvents = False
Rng.Columns(C).Resize(, 2).Copy Destination:=Rng.Columns(C + 2)
Rng(1, C + 2).FormulaR1C1 = "=RC[-2]+7"
Set Rng = Rng(3, C + 2).Resize(Rng.Rows.Count - 2, 2)
Rng.Columns(1).ClearContents
Rng.Columns(2).FormulaR1C1 = "=IFERROR(RANK(RC[-1]," & Rng.Columns(1) _
.Address(True, False, xlR1C1, False, Rng.Columns(2)) & "),"""")"
Application.EnableEvents = True
End Sub