Bonjour,
à tester.
Les chaines doivent être en A, pour l'instant je met le résultat en B que tu puisses tester et comparer.
Si tu valides on pourra remplacer en A.
J'arrondi à 5 décimales plutôt que de tronquer, ça me parait plus logique.
Il faut savoir que l'arrondi de vba est l'arrondi des comptables (voir google pour plus d'explication).
Si c'est vraiment gênant pour toi on peut véritablement tronquer.
Sub arrondi()
Dim datas, lig As Long, tmp1, tmp2, i As Long, j As Long
datas = [A2].Resize(Cells(Rows.Count, 1).End(xlUp).Row - 1).Value
For lig = 1 To UBound(datas)
If LCase(Left(datas(lig, 1), 7)) = "polygon" Then
tmp1 = Replace(Mid(datas(lig, 1), 11), " ", "")
tmp1 = Split(Left(tmp1, Len(tmp1) - 2), "):(")
For i = 0 To UBound(tmp1)
tmp2 = Split(tmp1(i), ",")
For j = 0 To UBound(tmp2)
tmp2(j) = Round(tmp2(j), 5)
Next j
tmp1(i) = Join(tmp2, ",")
Next i
datas(lig, 1) = "Polygon,((" & Join(tmp1, ") : (") & "))"
End If
Next lig
[B2].Resize(UBound(datas)) = datas
End Sub
eric