Retrouvez dans cet article une fonction personnalisée de Power Query pour enlever tous les accents de vos chaînes de caractères.
Power Query vs 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. C'est pourquoi, il est recommandé d'utiliser Power Query pour nettoyer vos chaînes de caractères de tous les accents.
Présentation du code
Le principe de la fonction Power Query est de créer une liste à deux dimensions.
- Un premier niveau pour lister les lettres sans accents à renvoyer.
- L'ensemble des lettres accentuées pour la même lettre.
(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))
Le résultat de la fonction va recombiner la chaîne initiale de la façon suivante :
- Text.ToList qui va éclater le texte MyText en une suite de lettres uniques en mémoire
- List.ReplaceMatchingItems va quant à elle effectuer le remplacement des lettres présentes dans le tableau de conversion
- Text.Combine va reconstruire la chaîne de caractères initiale
Télécharger le code
Cliquez sur le bouton suivant pour rélécharger le code de la fonction personnalisée.
Mise en place
- Copiez le code fourni dans cet article
- Puis aller dans Données > Obtenir des données > A partir d'autres sources > Requête vide
- Collez le code dans la requête vide
- Donnez lui le nom fnEnleverAccents

Appeler la fonction
Construisez votre requête tout à fait normalement, puis pour appeler la fonction
- Ajouter une nouvelle colonne
- Puis Ajouter une fonction personnalisée
- Cliquez sur le menu déroulant de Requête de fonction et sélectionnez la requête fnEnleverAccents
- Finissez par indiquer la colonne contenant les valeurs à nettoyer

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
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 !
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.