Sub Traitement()
Dim TabTemp As Variant
Dim Result(1 To 60, 1 To 3) As Variant
Dim C As Byte, L As Long
'Charge les données dans un tableau variant temporaire
With Sheets('Feuil1')
L = .Range('A65536').End(xlUp).Row
TabTemp = .Range(.Cells(1, 1), .Cells(L, 6)).Value
End With
With Sheets('Feuil2')
'Trie les données par date (tri décroissant)
.Cells.Delete
.Range(.Cells(1, 1), .Cells(L, 6)).Value = TabTemp
.Range(.Cells(1, 1), .Cells(L, 6)).Sort Key1:=.Cells(1, 1), Order1:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
TabTemp = .Range(.Cells(1, 1), .Cells(L, 6)).Value
.Cells.Delete
'Détermine les résultats
For L = 1 To UBound(TabTemp, 1)
For C = 2 To 6
If Result(TabTemp(L, C), 2) = '' Then
Result(TabTemp(L, C), 2) = TabTemp(L, 1)
ElseIf Result(TabTemp(L, C), 3) = '' Then
Result(TabTemp(L, C), 3) = TabTemp(L, 1)
End If
Next C
Next L
'Affiche les résultats
For L = 1 To 60
Result(L, 1) = L
Next L
.Range('A1:C60').Value = Result
End With
End Sub