Sub test()
Dim newval$, i&, Firstindex&, texte$,tableau
newval = ""
tableau = Range("A6:AE" & Cells(Rows.Count, "A").End(xlUp).Row)
For i = 1 To UBound(tableau)
If tableau(i, 7) <> newval Then
Firstindex = i
newval = tableau(i, 7)
texte = ""
Else
If tableau(i, 31) <> "" Then
tableau(Firstindex, 31) = tableau(Firstindex, 31) & " - " & tableau(i, 31): tableau(i, 31) = ""
End If
'on enleve les doublons(texte dans le resultat en first cellule de chaque valeur
'en gros on suprime les chaines qui se repete mot pour mots
t = Split(tableau(Firstindex, 31), "-")
For x = 0 To UBound(t)
If Not Trim(t(x)) = "" And Not texte Like "*" & Trim(t(x)) & "*" Then texte = texte & "-" & t(x)
Next
If Left(texte, 1) = "-" Then texte = Mid(texte, 2)
tableau(Firstindex, 31) = texte
End If
Next i
Application.EnableEvents = False
Cells(6, "AE").Resize(UBound(tableau), 1) = WorksheetFunction.Index(tableau, 0, 31) 'on retranscrit que la colonne 31 "AE"
Application.EnableEvents = True
End Sub