Option Base 1
Sub test()
Dim cellule As Range, max1, clé As String, ws As Worksheet, Der_Ligne%, D As Object
Set ws = Worksheets("feuil1")
Der_Ligne = ws.Range("A" & Rows.Count).End(xlUp).Row
compteur = 0
Dim Tablo
Tablo = ws.Range("A1").CurrentRegion
Set D = CreateObject("Scripting.dictionary")
For i = 3 To UBound(Tablo)
ind = CLng(Evaluate("=INDEX(Tableau1[Dates sorties],LARGE(IF(((Tableau1[Clé]=""" & Tablo(i, 1) & """)*(Tableau1[Dates sorties]<>"""")),ROW(Tableau1[Clé])-2),1))"))
If Not D.exists(Tablo(i, 1)) Then D.Add Tablo(i, 1), ind
Next i
Set i = Nothing
Dim tablo2()
ReDim tablo2(D.Count, 1 To 2)
tablo2 = Application.Transpose(Array(D.keys, D.Items))
For Each cellule In ws.Range("C3:C" & Der_Ligne)
For t = 1 To UBound(tablo2)
If CLng(cellule.Offset(0, 2)) = tablo2(t, 2) Then cellule.Offset(0, 12) = cellule.Offset(0, 11).Value2
If CLng(cellule) >= tablo2(t, 2) And cellule.Offset(0, -2) = tablo2(t, 1) Then
cellule.Offset(0, 12) = cellule.Offset(0, 11).Value2
End If
Next t
Next cellule
End Sub