Private Sub Worksheet_Change(ByVal Target As Range)
Dim t, dat1, dat2, i&, dat, n&
t = [Tableau1].Resize(, 3)
dat1 = Date
dat2 = DateSerial(Year(dat1), Month(dat1) + 13, 0)
For i = 1 To UBound(t)
dat = t(i, 2)
If dat > dat1 And dat <= dat2 Then
n = n + 1
t(n, 1) = t(i, 1): t(n, 2) = t(i, 3): t(n, 3) = dat
End If
Next
Application.ScreenUpdating = False
Application.EnableEvents = False
With Range("G4:I" & Rows.Count) 'à adapter
.ClearContents 'RAZ
If n Then
.Resize(n) = t
.Resize(n).Sort [I4], xlAscending, Header:=xlNo 'tri sur les dates
End If
End With
Application.EnableEvents = True
End Sub