Private Sub Worksheet_Change(ByVal Target As Range)
Dim dest As Range, ncol%, maxi#(), j%, a(), t, i&
Set dest = [X1] 'cellule de destination, à adapter
With Intersect([I:V], Me.UsedRange.EntireRow) 'colonnes I:V à adapter
ncol = .Columns.Count
ReDim maxi(1 To ncol)
For j = 1 To ncol
maxi(j) = Application.Max(.Columns(j))
Next
ReDim a(1 To .Rows.Count, 1 To 1)
t = .Value 'matrice, plus rapide
For i = 1 To .Rows.Count
For j = 1 To ncol
If t(i, j) <> "" And t(i, j) = maxi(j) Then a(i, 1) = a(i, 1) + t(i, j)
Next j, i
If a(1, 1) = "" Then a(1, 1) = dest 'si titres
Application.EnableEvents = False 'désactive les évènements
dest.Resize(UBound(a)) = a 'restitution
dest.Offset(UBound(a)).Resize(Rows.Count - UBound(a) - dest.Row + 1) = ""
Application.EnableEvents = True 'réactive les évènements
End With
End Sub