Remplacer le dernier espace avant une virgule par du texte

Bonjour,

J'ai un tableur Excel avec une suite de coordonnées dans une seule et même cellule.

Il y a 4 valeurs : X, Y, Z et M qui sont séparées chacune par un espace puis par une virgule pour 4 nouvelles valeurs : X Y Z M,X Y Z M,X Y Z M,...

Je voudrais remplacer l'espace entre la valeur Z et M par "/P=". Cet espace correspond au dernier avant la virgule.

Initialement j'ai ça dans la colonne N "COORDS WKT XY" :

image

Et mon objectif est d'obtenir ça sans le remplir à la main :

image

La manipulation doit pouvoir se faire dans toute la colonne.

Merci

Bonjour,

à tester :

Sub normaliser()
    Dim datas, lig As Long, i As Long, tmp
    datas = [N3].Resize(Cells(Rows.Count, "N").End(xlUp).Row).Value
    For lig = 1 To UBound(datas)
        If InStr(datas(lig, 1), "/P=") = 0 Then
            tmp = Split(datas(lig, 1), ",")
            For i = 0 To UBound(tmp)
                tmp(i) = Replace(tmp(i), " ", "/P=", , 1)
            Next i
            datas(lig, 1) = Join(tmp, ",")
        End If
    Next lig
    [N3].Resize(UBound(datas)) = datas
End Sub

une cellule avec "/P=" ne sera pas retraitée si tu l'as complétée après.
eric

Bonjour,

Je vous en remercie, mais j'aurais aimé qu'il se situe entre la troisième valeur et la quatrième.

Comment est-il possible de modifier cela ?

Merci

alo le pole nord

Déjà que les photos ne sont pas très pratiques ni utiles, mais si en plus elles sont là pour tromper...

A voir :

Sub normaliser()
    Dim datas, lig As Long, i As Long, tmp
    datas = [N3].Resize(Cells(Rows.Count, "N").End(xlUp).Row).Value
    For lig = 1 To UBound(datas)
        If InStr(datas(lig, 1), "/P=") = 0 Then
            tmp = Split(datas(lig, 1), ",")
            For i = 0 To UBound(tmp)
                tmp(i) = Replace(tmp(i), " ", "µ", , 2)
                tmp(i) = Replace(tmp(i), " ", "/P=")
                tmp(i) = Replace(tmp(i), "µ", " ", , 2)
            Next i
            datas(lig, 1) = Join(tmp, ",")
        End If
    Next lig
    [N3].Resize(UBound(datas)) = datas
End Sub
Rechercher des sujets similaires à "remplacer dernier espace virgule texte"