Sub test()
Dim curCell As Range, cellWrite As Range, dateMem As Date, trouve As Boolean
Set curCell = ThisWorkbook.Sheets("Sheet1").Range("E5")
Set cellWrite = ThisWorkbook.Sheets("Sheet1").Range("J6")
'effacer la zone de résultat
Range(cellWrite, cellWrite.End(xlDown).End(xlToRight)).ClearContents
'boucler sur les éléments de la colonne E
While curCell.Text <> vbNullString
trouve = False
If UCase(curCell.Offset(0, 2)) <> "X" Then
trouve = True
dateMem = curCell.Offset(0, 1)
End If
While curCell.Offset(1, 0).Text = curCell.Text
Set curCell = curCell.Offset(1, 0)
If UCase(curCell.Offset(0, 2)) <> "X" Then
If trouve Then
If DateDiff("d", curCell.Offset(0, 1), dateMem) > 0 Then dateMem = curCell.Offset(0, 1)
Else
trouve = True
dateMem = curCell.Offset(0, 1)
End If
End If
Wend
If trouve Then
cellWrite.Value = curCell.Value
cellWrite.Offset(0, 1).Value = dateMem
Set cellWrite = cellWrite.Offset(1, 0)
End If
Set curCell = curCell.Offset(1, 0)
Wend
End Sub