Bonjour à tous,
Je suis en train de faire une macro destinée à nettoyer une liste d'adresse et je bloc sur une étape.
J'ai besoin de créer une fonction qui supprime dans la cellule sectionnée une liste de mots que j'aurai précédemment déclaré.
Ex : liste de mot déclaré : ("amiral", "docteur", "president")
Ex remplacement : Rue amiral Courbet -> Rue Courbet
Je n'arrive pas à trouver le bon mécanisme.
Cette fonction ne supprime que l'expression "capitaine"
Rue amiral courbet -> Rue amiral courbet
Function SUPTITRE5(Strchaine) As String
Dim titre()
titre = Array("docteur", "general", "professeur", "president", "amiral", "commandant", "marechal", "colonel", "lieutenant", "consul", "capitaine")
For i = 0 To UBound(titre)
SUPTITRE4 = Replace(Strchaine, titre(i), "")
Next i
End Function
Cette fonction là additionne la chaine avec remplacement de caractères à celle sans remplacement de caractères
Rue Amiral Courbet -> Rue Amiral Courbet Rue Courbet
Function SUPTITRE3(Strchaine) As String
Dim tablo() As String, titre()
titre = Array("docteur", "general", "profeseur", "president", "amiral", "comandant", "marechal", "colonel", "lieutenant", "consul", "capitaine")
tablo() = Split(Strchaine, " ")
For i = 0 To UBound(titre)
For f = 0 To UBound(tablo)
If tablo(f) = titre(i) Then
SUPTITRE3 = SUPTITRE3 & Mid(Strchaine, Len(tablo(f)) + 1) & " "
ElseIf SUPTITRE3 = "" Then
SUPTITRE3 = Strchaine
End If
Next f
Next i
End Function
Quelqu'un pourrait-il m'aider à trouver l'astuce pour que ça marche ?
Partager