Sub Recapitulatif()
Dim TabData() As Variant
Dim NbLignes As Long
Dim NbCol As Long
Dim Recap as string
With Sheets("Feuil1") 'dans la feuille 1
NbLignes = .Range("A" & .Rows.Count).End(xlUp).Row
NbCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
TabData = .Range("A1").Resize(NbLignes, NbCol).Value
For i = LBound(TabData, 1) + 1 To UBound(TabData, 1)
Recap = ""
For j = LBound(TabData, 2) To UBound(TabData, 2) - 1
If TabData(i, j) = "oui" Then Recap = Recap & "-" & TabData(1, j)
Next j
TabData(i, UBound(TabData, 2)) = Right(Recap, Len(Recap) - 1)
Next i
.Range("A1").Resize(NbLignes, NbCol) = TabData
End With
End Sub