Salut Franic,
Salut Steelson,
Salut h2so4,
astucieux de placer une apostrophe devant chaque mot ! Pas pensé à ça et ça règle tous les soucis
J'avais pensé, perso, à changer l'apostrophe par le caractère ASCII précédent "&" et à faire une petite gymnastique pour tout remettre dans l'ordre.... Bref, moins bon que la solution de h2so4.
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim tSplit, sItemA$, sItem$, sTemp$
'
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Target.Offset(0, 1) = ""
If Target <> "" Then
tSplit = Split(Target, " ")
For x = 0 To UBound(tSplit)
sItem = tSplit(x)
sTemp = IIf(Len(sItem) = 1, sItem, "")
If Len(sItem) > 1 Then
For y = 1 To Len(sItem)
Range("AA" & y).Value = IIf(Mid(sItem, y, 1) = "'", "&", Mid(sItem, y, 1))
Next
Range("AA1:AA" & Len(sItem)).Sort key1:=Range("AA1"), order1:=xlAscending, Orientation:=xlByRows, Header:=xlNo
For y = 1 To Len(sItem)
sTemp = sTemp & IIf(Range("AA" & y).Value = "&", "'", Range("AA" & y).Value)
Next
End If
sItemA = sItemA & IIf(sItemA = "", "", " ") & sTemp
Range("AA:AA").Value = ""
Next
Target.Offset(0, 1) = sItemA
End If
End If
'
End Sub
A+