Le code suivant va vous permettre d'enlever les accents en utilisant Power Query.
Power Query ou VBA
Dans cet article vous avez une situation similaire mais écrite en VBA. Seulement, en VBA, il n'est pas possible d'écrire des caractères au-delà du caractère 255 dans la table des caractères ASCII.
Seulement, il y a certains caractères, comme ż, ł ou ń qui sont au-delà de la position 255 dans la table ASCII. Donc, pour tous ces caractères particuliers, il est préférable de construire la fonction avec Power Query.
Présentation du code
Le principe de la fonction Power Query est de créer une liste double liste.
- Une liste pour chaque association de lettre à trouver / lettre à convertir.
- L'ensemble de ces associations regroupé dans une autre liste.
(MyText as text) =>
let
ListAccents =
{
{"à","a"},
{"á","a"},
{"â","a"},
{"ã","a"},
{"ä","a"},
{"å","a"},
{"è","e"},
{"é","e"},
..........
{"ś","s"},
{"ż","z"},
{"ź","z"},
{"Ą","A"},
{"Ć","C"},
{"Ę","E"},
{"Ł","L"},
{"Ń","N"},
{"Ś","S"},
{"Ż","Z"},
{"Ź","Z"},
}
in
Text.Combine(List.ReplaceMatchingItems(Text.ToList(MyText), ListAccents))
Enfin, tout ce tableau va être utilisé dans la fonction Text.ToList qui va éclater le texte MyText en une suite de lettres uniques en mémoire. L'instruction List.ReplaceMatchingItems va quant à elle effectuer le remplacement des lettres présentes dans le tableau de conversion.
Télécharger le code
Vous pouvez télécharger le code complet ici ou bien encore le classeur Excel avec un exemple
Vous trouverez des informations complémentaires sur le remplacement de données sur le site de Microsoft.
Céline
24/04/2024 @ 19:13
Whaou ! C'est génial ! Mille mercis, ça peut vraiment aider comme créer des adresses mails d'une société avec prenom.nom@societe.fr et supprimer les accents !
Merci Frédéric pour ces GRANDS TIPS
Céline
Laurent
13/11/2020 @ 21:38
Dans l'idée c'est très pratique mais impossible de faire fonctionner le code.
J'ai corriger la liste des lettres à accent (cf la version en VB pour les bonnes correspondances), enlevé la virgule en trop à la fin de la liste. Mais Excel continue à générer une erreur dont le message est incompréhensible et l'aide ne propose que de redémarrer l'appli.
Dommage !
Frédéric LE GUEN
14/11/2020 @ 09:33
Bonjour,
Oui, j'avais laissé une erreur dans le code (dsl). J'ai remis en ligne la nouvelle version avec un exemple depuis un classeur Excel.