Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, Range("E2", Range("E" & Rows.Count).End(xlUp)))
If r Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les événements
For Each r In r 'si plusieurs cellules sont modifiées
With Cells(r.Row, "G")
If CStr(r) = "" Then
.Value = ""
Else
.Value = .Text & IIf(.Text = "", "", ", ") & CStr(r)
r = .Value
End If
End With
Next
Application.EnableEvents = True 'réactive les événements
End Sub