Sub split_plus_moins()
Dim t, tablo, i&, s, n%, j%, x As Variant, ncol%, resu()
t = Timer
With Feuil1.[A1].CurrentRegion.Columns(1)
tablo = .Resize(.Rows.Count + 1) 'matrice, plus rapide, au moins 2 éléments
For i = 2 To UBound(tablo) - 1
s = Split(Replace(tablo(i, 1), "-", "+-"), "+")
n = 0
For j = 0 To UBound(s)
x = Evaluate(s(j))
If Not IsError(x) Then
n = n + 1
If n > ncol Then ncol = n: ReDim Preserve resu(1 To UBound(tablo), 1 To n)
resu(i, n) = x
End If
Next j, i
If .Parent.FilterMode Then .Parent.ShowAllData 'si la feuille est filtrée
.Offset(, 1).Resize(, ncol) = resu
.Offset(, ncol + 1).Resize(, .Parent.Columns.Count - ncol - 1).ClearContents 'RAZ à droite
End With
MsgBox "Durée " & Format(Timer - t, "0.00 \s")
End Sub