Quelle puissance...
Vos deux solutions sont fonctionnelles.
La version de Sébastien produit le résultat en colonne C.
La version de Jean-Eric, adaptée ici me donnait le résultat mais produisant 5 ";" à la fin.
J'ai ajustée le code de façon à supprimer les ";" à la fin.
Merci à vous tous !
Sub nettoyage()
Dim Sh As Worksheet
For Each Sh In Worksheets
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
resultat = Cells(i, 2)
Cells(i, 2) = CleanText(Cells(i, 2))
Cells(i, 2) = Left(resultat, Len(resultat) - 5)
Next i
Next
End Sub
Public Function CleanText(sText As String) As String
Dim tbl As Variant, i As Long, x As String
tbl = Split(Trim(sText), " ")
For i = 0 To UBound(tbl) Step 2
x = x & tbl(i) & ";"
Next i
CleanText = x
End Function
End Sub