Bonjour à tous et à toutes,
Il y a quelques jours, j'avais posé la question sur comment remplacer automatiquement les caractères accentués et les espaces par des caractères non accentués et des tirets.
Patrick1957 (merci à lui) m'avait alors donné le module suivant :
Function MajSansAccent$(ByVal Chaine$)
'Ti
Const VAccent = "àáâãäåéêëèìíîïðòóôõöùúûüç ',", VSsAccent = "aaaaaaeeeeiiiioooooouuuuc--"
Dim Bcle&
For Bcle = 1 To Len(VAccent)
Chaine = Replace(Chaine, Mid(VAccent, Bcle, 1), Mid(VSsAccent, Bcle, 1))
Next Bcle
MajSansAccent = LCase(Chaine)
End Function
Je l'ai un peu modifié pour ajouter les apostrophes et les virgules.
Aujourd'hui je fais de nouveau appel à vous pour améliorer ce module et ne plus remplacer QUE 1 seul caractère, mais (aussi) des mots. Ainsi, je voudrais AUSSI (en plus pas à la place, c'est pour ça que je parle d'amélioration du module) remplacer/supprimer des mots (donc plusieurs caractères) comme "avec" "et" "de"...
J'ai essayé de le rajouter au code fourni par Patrick1957... :
Const VAccent = "àáâãäåéêëèìíîïðòóôõöùúûüç ', avec ", VSsAccent = "aaaaaaeeeeiiiioooooouuuuc--"
ou
Const VAccent = "àáâãäåéêëèìíîïðòóôõöùúûüç ',"" avec ", VSsAccent = "aaaaaaeeeeiiiioooooouuuuc--"""
... mais le résultat est catastrophique
Si je veux remplacer/supprimer le mot avec, il va me remplacer/supprimer toutes les lettres du mot avec (c'est à dire le A, le V, le E et le C)
Dans un sens c'est logique car l'ordinateur, le programme obéit bêtement en remplaçant les lettres A V E C et non pas le mot AVEC.
Cependant, je ne sais pas comment lui demander de remplacer/supprimer le mot et non les caractères qui le compose quelle que soit la position des caractères.
Je vous remercie par avance pour votre aide.
Bonne journée à vous