Sub GetNoms()
Dim dlg&: dlg = Cells(Rows.Count, 1).End(3).Row: If dlg < 3 Then Exit Sub
Dim Tbl, txt$, lng%, s1$, s2$, p1%, p2%, lig&
dlg = dlg - 2: Tbl = [A3].Resize(dlg, 2)
For lig = 1 To dlg
txt = Tbl(lig, 1): lng = Len(txt): If lng = 0 Then GoTo 1
s2 = "": p1 = 1
Do
p1 = InStr(p1, txt, "(@"): If p1 = 0 Then Exit Do
p2 = InStr(p1 + 2, txt, ")"): If p2 = 0 Then Exit Do
s1 = Mid$(txt, p1 + 2, p2 - p1 - 2)
p1 = InStrRev(s1, "-"): If p1 > 0 Then s1 = Left$(s1, p1 - 1)
s2 = s2 & s1 & ", ": p1 = p2 + 1
Loop
If s2 <> "" Then Tbl(lig, 2) = Left$(s2, Len(s2) - 2)
1 Next lig
Application.ScreenUpdating = 0
With [B3].Resize(dlg)
.ClearContents
.Value = Application.Index(Tbl, Evaluate("Row(" & "1:" & dlg & ")"), 2)
End With
End Sub