Adresse normalisée

Bonjour à tous,

J'ai un projet qui cherche à normaliser les adresses postales.

J'ai longtemps cherché sur les forums, généralement leurs solutions marchent lorsqu'il n'y pas d'espace dans le nom des rues, ou s'il y a le même nombre de caractères entre les parenthèses. (Ce qui n'est bien-sur pas mon cas !)

Si quelqu'un a une idée, je suis preneur !

Bonjour

A tester

41thomassss.xlsm (18.15 Ko)

Bonjour,

Voici un premier jet par rapport à ce que tu montres mais il va y avoir encore bien d'autres cas qu'il va falloir traiter de façon particulière à mon avis. Donc, pour le test, tes chaines en colonnes A et le résultat en colonne B sur la feuille "Feuil1" :

Sub Test()

    Dim Plage As Range
    Dim Cel As Range
    Dim Tbl1
    Dim Tbl2
    Dim Chaine As String

    With Worksheets("Feuil1"): Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With

    For Each Cel In Plage

        'recherche si une virgule existe dans la chaine
        If InStr(Cel.Value, ",") = 0 Then

            'le séparateur est la parenthèse ouvrante
            Tbl1 = Split(Cel.Value, "(")

            'Left permet de supprimer la parenthèse fermante et Trim supprime les éventuels espaces en début et fin de chaine
            Chaine = Trim(Left(Tbl1(1), Len(Tbl1(1)) - 1) & " " & Tbl1(0))
            Cel.Offset(, 1).Value = Chaine

        Else

            Tbl1 = Split(Cel.Value, ",")
            Tbl2 = Split(Tbl1(1), "(")

            Chaine = Trim(Left(Tbl2(1), Len(Tbl2(1)) - 1) & Tbl2(0)) & " " & Tbl1(0)
            Cel.Offset(, 1).Value = Chaine

        End If

    Next Cel

End Sub
Rechercher des sujets similaires à "adresse normalisee"