Salut le fil...
tiens un bout de code d'une parmi tan d'autres solutions
Sub test()
'// Ce code est juste un essais et doit être amélioré
Dim Resultats_Attendus As Range, r As Range, GroupeName As String, GroupeNum As Integer
Dim tbl
Set Resultats_Attendus = [AM5:AM12]
For Each r In Resultats_Attendus
If r.Value = "" Then Exit For
If r.Value = r.Offset(1, 0).Value Then
GroupeName = IIf(GroupeName = "", r.Offset(0, -1).Value, GroupeName & ", " & r.Offset(0, -1))
Debug.Print GroupeName
Else
GroupeName = IIf(Right(GroupeName, 1) = ";", GroupeName & " " & r.Offset(0, -1) & ";", GroupeName & ", " & r.Offset(0, -1) & ";")
Debug.Print GroupeName
End If
Next
tbl = Split(GroupeName, ";")
[D5].Resize(UBound(tbl)) = Application.Transpose(tbl)
End Sub