Remplacer un nom par un autre

Bonjour,,

J'ai une liste de texte dans la colonne"I"

Cette liste comporte en début le mot Polygon que je voudrais remplacer par "Path" et

le mot points=" par "D="M".

Ensuite je voudrais récupérer le nom qui est en Majuscule ex: ANTULLY" et le coller en colonne "A"

Je vous remercie de votre aide

Max

23changer-nom.xlsm (8.35 Ko)

bonjour

c'est un job pour Power Query

https://www.youtube.com/watch?v=gwW2CDdvUUs

(il est inclus dans les Excel plus récents)

joins un fichier avec au moins 5 lignes variées pour qu'on teste

à te relire

amitiés et bonne année

Bonjour,

une proposition

Sub aargh()
    col = "I"
    Columns(col).Replace "<polygon id=", "<path id=",xlPart
    For i = 1 To Cells(Rows.Count, col).End(xlUp).Row
        texte = Cells(i, col)
        If texte <> "" Then
            texte = Split(texte, """")(1)
            texte = Split(texte, "_")
            texte = texte(UBound(texte))
            If EstMajuscule(texte) Then Cells(i, 1) = texte
        End If
    Next i
End Sub

Function EstMajuscule(t)
    For i = 1 To Len(t)
        ch = Mid(t, i, 1)
        If ch < "A" Or ch > "Z" Then EstMajuscule = False: Exit Function
    Next i
    EstMajuscule = True
End Function

Bonjour

Pour le code à h2so4 sa fonctionne avec une ligne, mais j'ai souvent entre 600 et 800 lignes , alors je met un fichier avec une vingtaine de lignes sa rejoint la réponse de jmd

Je vous remercie et vous souhaite une bonne journée

Max

7changer-nom-1.xlsm (16.58 Ko)

Pour le code à h2so4 sa fonctionne avec une ligne, mais j'ai souvent entre 600 et 800 lignes

pour info

Bonjour, le code est prévu pour que ça fonctionne avec le nombre de lignes non vides présentes dans le fichier. Il manquait un paramètre pour que ce remplacement fonctionne à tous les coups sur ton fichier, je l'ai ajouté. voir plus haut.

Re,

Oui sa fonctionne sur les polygon mais pas sur le points="

points=" remplacer par D="M

@+

Max

Ok j’avais zappé cette demande

bonsoir,

nouvelle version

Sub aargh()
    col = "I"
    Columns(col).Replace "<polygon id=", "<path id=", xlPart
    Columns(col).Replace "points=""", "D=""M", xlPart
    For i = 1 To Cells(Rows.Count, col).End(xlUp).Row
        texte = Cells(i, col)
        If texte <> "" Then
            texte = Split(texte, """")(1)
            texte = Split(texte, "_")
            texte = texte(UBound(texte))
            If EstMajuscule(texte) Then Cells(i, 1) = texte
        End If
    Next i
End Sub

Function EstMajuscule(t)
    For i = 1 To Len(t)
        ch = Mid(t, i, 1)
        If ch < "A" Or ch > "Z" Then EstMajuscule = False: Exit Function
    Next i
    EstMajuscule = True
End Function

Salut h2so4

Je te remercie sa, sa fonctionne Nickel mais j'ai un petit souci au niveau de la récupération des noms.

Je m'explique, j'ai des noms composé tel que : VILLETTE-LES-ARBOIS, VILLENEUVE-D'AVAL, VILLENEUVE-SOUS-PYMONT ect...

et cela sa ne les récuper pas?

Je te remercie

Max

Bonjour,

voici une adaptation de la macro, ça devrait fonctionner

Sub aargh()
    col = "I"
    Columns(col).Replace "<polygon id=", "<path id=", xlPart
    Columns(col).Replace "points=""", "D=""M", xlPart
    For i = 1 To Cells(Rows.Count, col).End(xlUp).Row
        texte = Cells(i, col)
        If texte <> "" Then
            texte = Split(texte, """")(1)
            texte = Split(texte, "_")
            texte = texte(UBound(texte))
            If EstMajuscule(texte) Then Cells(i, 1) = texte
        End If
    Next i
End Sub

Function EstMajuscule(tx)
    For i = 1 To Len(t)
        ch = Mid(t, i, 1)
        If (ch < "A" Or ch > "Z") And ch <> "-" And ch <> "'" Then EstMajuscule = False: Exit Function
    Next i
    EstMajuscule = True
End Function
Rechercher des sujets similaires à "remplacer nom"