Microsoft 365 remplacer caractères

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à toutes,
Je vous souhaite un bon et beau WE 🙂

Je bute encore une fois sur un codage que je n'arrive pas à faire.
Et je me permets de vous solliciter à nouveau.
Contexte
Nos Clients ou nvx Clients nous envoient par mail des listes de communes à prospecter.
Afin de ne pas prospecter les communes pour trop de Clients, je vérifie les communes que nous avons déjà en prospection.
Pour cela j'ai un classeur, avec un code fait avec l'enregistreur de macro, pour remplacer le maximum de cas rencontrés, qui va pas trop mal lol

Les Clients m'envoient leurs communes en écritures diverses et variées LOL
Pour que je puisse vérifier dans mon classeur, il est impératif que les communes comparées soient "rigoureusement" nommées à l'identique.

Toutefois, c'est incomplet, je gère plus de 4000 communes et je suis trop souvent obligé de passer bcp de temps pour vérifier manuellement.

J'ai obtenu de je ne sais plus qui du forum un code (mes excuses pour l'avoir oublié et mes remerciements à nouveau) qui fonctionne très bien pour certains remplacements de caractères :
VB:
Function Sans_accents(chaine As Range)
   Dim T As String, A As String, B As String
   Dim i As Integer, U As String
   If chaine.Value = "" Then Exit Function
   T = chaine.Value
   'remplacement des caractères accentués
   A = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿçÇ"
   B = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyycC"
   For i = 1 To Len(T)
      U = InStr(1, A, Mid(T, i, 1), 0)
      If U Then Mid(T, i, 1) = Mid(B, U, 1)
   Next i
   Sans_accents = T
End Function
Malheureusement, j'ai d'autres remplacements à faire et je n'arrive pas à trouver comment faire le code
exemple :
8400 ardeuil-a-montfauxelles
8400 ardeuil_a_montfauxelles

Résultats attendus
8400 ardeuil a montfauxelles
8400 ardeuil a montfauxelles

etc...

J'ai fait un fichier test dans lequel :
- en colonne A (a4 à a38) j'ai listé les noms de communes à modifier,
- en colonne D j'ai listé les résultats attendus,

Auriez-vous la solution ?
Cela me ferait gagner un temps considérable.
Je joins le fichier test,
Avec mes remerciements,
lionel,
 

Pièces jointes

Dernière édition:
Solution
C
Re,

Non le nombre de chiffres du code postal ne me pose pas de problème

Voici la dernière version avec d'autres exemples, j'ai également pensé à traiter le cas
8400 l' Espace après l'apostrophe 😛

@+
Salut Lionel et merci à toi de m'accorder cette confiance 😉

C'est un peu plus ardus, vu qu'il fallait ajouter un traitement intermédiaire.
En effet dans ces cas, on ne doit traiter que le début de la chaine et pas tout le reste

J'espère que ton code postal est toujours composé de 4 chiffres 😛

Voici le fichier modifié
 

Pièces jointes

Re,

Non le nombre de chiffres du code postal ne me pose pas de problème

Voici la dernière version avec d'autres exemples, j'ai également pensé à traiter le cas
8400 l' Espace après l'apostrophe 😛

@+
 

Pièces jointes

Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
45
Affichages
2 K
Réponses
26
Affichages
1 K
Retour