Bonjour,
Une première proposition.
A te relire.
Cdlt
Public Sub Main()
Dim tbl As Variant, N As Long, i As Long
With ActiveSheet
N = .Cells(.Rows.Count, 1).End(xlUp).Row
tbl = .Cells(2, 2).Resize(N - 1)
For i = LBound(tbl) To UBound(tbl)
tbl(i, 1) = Sort_a_string(tbl(i, 1))
Next i
.Cells(2, 2).Resize(N - 1).Value = tbl
End With
End Sub
Private Function Sort_a_string(ByVal txt As String) As String
Dim arr As Variant, x As Long, y As Long, tmp As String, tmp2 As String
txt = Replace(txt, " ", "")
arr = Split(txt, ",")
For x = LBound(arr) To UBound(arr)
For y = x To UBound(arr)
If UCase(arr(x)) > UCase(arr(y)) Then
tmp = arr(x): tmp2 = arr(y)
arr(x) = tmp2: arr(y) = tmp
End If
Next y
Next x
Sort_a_string = Join(arr, ", ")
End Function