La fonction CODE (CODE en anglais aussi) convertit un caractère en son numéro ASCII. Chaque lettre, chiffre ou symbole possède un identifiant unique dans la table ASCII : "A" vaut 65, "a" vaut 97, "0" vaut 48. C'est la brique de base pour toute manipulation de texte qui descend au niveau des caractères.
Concrètement, c'est elle qui te permet de valider qu'un code produit commence bien par une majuscule, de détecter des caractères invisibles parasites dans un import CSV, de créer une colonne de tri numérique à partir de la première lettre d'un nom, ou de vérifier qu'un identifiant système ne contient que des caractères alphanumériques. Les data analysts et les développeurs l'utilisent quotidiennement pour diagnostiquer des anomalies et automatiser des contrôles de qualité.
Syntaxe de la fonction CODE
=CODE(texte)Comprendre chaque paramètre de la fonction CODE
texte
: le caractère ou la chaîne de texte dont tu veux obtenir le code ASCIIÇa peut être une lettre directe comme "A", une référence de cellule comme A1, ou le résultat d'une autre fonction comme GAUCHE(B2; 1).
Si tu fournis une chaîne de plusieurs caractères comme "BONJOUR", CODE analysera uniquement le premier caractère ("B") et ignorera le reste. Pour traiter tous les caractères, tu devras combiner CODE avec d'autres fonctions texte.
Astuce : Les majuscules et minuscules ont des codes différents : "A" = 65 mais "a" = 97. Cette différence de 32 est constante pour toutes les lettres, ce qui permet de créer des formules de conversion de casse avec CARACT.
Pas envie d'écrire la formule CODE à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Développeur : valider le format d'un code produit
Tu es développeur et tu dois vérifier que tous les codes produits commencent bien par une majuscule (A-Z). Plutôt qu'écrire 26 conditions SI distinctes, tu utilises CODE pour contrôler que le premier caractère a un code compris entre 65 et 90.
| A | B | C | |
|---|---|---|---|
| 1 | Code produit | Premier car. | Valide ? |
| 2 | A1234 | 65 | OUI |
| 3 | B5678 | 66 | OUI |
| 4 | a9012 | 97 | NON |
| 5 | 3ABCD | 51 | NON |
=SI(ET(CODE(A2)>=65; CODE(A2)<=90); "OUI"; "NON")La formule lit le code ASCII du premier caractère et vérifie qu'il tombe entre 65 et 90, la plage qui correspond exactement aux majuscules A à Z. Si oui, elle renvoie « OUI », sinon « NON ». C'est bien plus concis que 26 conditions distinctes et ça s'adapte à n'importe quel alphabet.
Data analyst : détecter les caractères spéciaux dans des imports
Tu es data analyst et après un import CSV, certaines cellules contiennent des caractères invisibles qui bloquent tes recherches. Tes RECHERCHEV ne trouvent rien alors que les valeurs semblent identiques.
| A | B | C | |
|---|---|---|---|
| 1 | Nom client | Code 1er car. | Type |
| 2 | Dupont | 68 | Normal |
| 3 | Martin | 32 | Espace ! |
| 4 | Durand | 68 | Normal |
| 5 | Bernard | 10 | Saut ligne ! |
=CODE(A2)Ici, la fonction renvoie le code du premier caractère de chaque cellule : un 32 trahit un espace de tête, un 10 un saut de ligne. Ces caractères parasites, invisibles à l'œil, expliquent pourquoi tes RECHERCHEV échouaient. Une fois repérés, tu peux les nettoyer avec SUBSTITUE ou EPURAGE.
Gestionnaire de données : trier par ordre alphabétique personnalisé
Tu es gestionnaire de données et tu veux créer une colonne de tri numérique basée sur la première lettre des noms, pour faciliter les regroupements dans un rapport.
| A | B | |
|---|---|---|
| 1 | Nom | Position alpha |
| 2 | Alice | 1 |
| 3 | Bernard | 2 |
| 4 | Marc | 13 |
| 5 | Zoé | 26 |
=CODE(MAJUSCULE(GAUCHE(A2; 1)))-64La formule extrait la première lettre (GAUCHE), l'harmonise en majuscule (MAJUSCULE), puis lit son code ASCII (CODE). Comme A vaut 65, soustraire 64 ramène la lettre à sa position dans l'alphabet : A vaut 1, B vaut 2, jusqu'à Z qui vaut 26.
Auditeur : identifier les caractères non alphanumériques dans des identifiants
Tu es auditeur et tu dois vérifier que tous les identifiants système ne contiennent que des lettres et des chiffres, sans symboles ni espaces pour des raisons de sécurité.
| A | B | C | |
|---|---|---|---|
| 1 | ID Système | Code | Conforme |
| 2 | USER123 | 85 | OUI |
| 3 | ADMIN@01 | 65 | NON |
| 4 | SYS-456 | 83 | NON |
| 5 | DATA789 | 68 | OUI |
=SI(OU(ET(CODE(A2)>=48;CODE(A2)<=57);ET(CODE(A2)>=65;CODE(A2)<=90);ET(CODE(A2)>=97;CODE(A2)<=122));"OUI";"NON")La formule vérifie que le code du premier caractère appartient à l'une des trois plages autorisées : 48-57 (chiffres 0-9), 65-90 (majuscules A-Z) ou 97-122 (minuscules a-z). ADMIN@01 est non conforme car le @ a un code de 64, hors de ces trois plages.
Astuce de pro : Pour scanner tous les caractères d'un identifiant et pas seulement le premier, tu devrais combiner cette vérification avec une boucle via une macro ou une formule matricielle avancée.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction CODE
Le jour où CODE te lâche, c'est presque toujours sur une cellule vide : sans caractère à lire, elle renvoie #VALEUR!, et c'est de loin le cas le plus fréquent. Les deux autres ratés sont plus sournois car ils ne déclenchent aucune erreur : soit tu la confonds avec son inverse CARACT et tu récupères un nombre au lieu d'une lettre, soit tu oublies qu'elle s'arrête au premier caractère, si bien que CODE("HELLO") ne te donne que le 72 du "H".
Erreur #VALEUR! avec une cellule vide
Si tu appliques CODE à une cellule vide, Excel retourne #VALEUR! car il n'y a aucun caractère à analyser. C'est l'erreur la plus courante avec cette fonction.
Solution : Protège ta formule avec SI : =SI(A1=""; ""; CODE(A1)). Cela retourne une cellule vide au lieu d'une erreur quand la source est vide.
Confusion entre CODE et CARACT : les deux fonctions inversées
CODE transforme un caractère en nombre ("A" -> 65), tandis que CARACT fait l'inverse (65 -> "A"). Confondre les deux génère des résultats absurdes : un nombre là où tu attends du texte, ou du texte là où tu attends un nombre.
Solution : Retiens que CODE lit du texte et produit un nombre, alors que CARACT lit un nombre et produit du texte. Ce sont deux fonctions inverses l'une de l'autre.
CODE ne traite que le premier caractère, pas toute la chaîne
Beaucoup pensent que CODE("HELLO") retourne les codes de tous les caractères, mais elle retourne uniquement 72 (le code de "H"). Les quatre autres lettres sont ignorées.
Solution : Pour analyser tous les caractères, utilise CODE(STXT(A1;1;1)), CODE(STXT(A1;2;1)), etc., ou crée une formule matricielle qui boucle sur chaque position.
CODE vs CARACT vs UNICODE vs UNICAR
Tant que tu restes sur des lettres latines, des chiffres et des accents français, CODE fait le travail : elle lit dans le sens texte vers nombre et couvre toute la table ASCII (1 à 255). Le mur arrive avec un emoji ou un alphabet non latin, qu'elle ne sait pas traduire : là, tu bascules sur UNICODE. Et si tu veux faire le chemin inverse, partir d'un nombre pour retrouver le caractère, c'est CARACT qui prend le relais en ASCII, UNICAR dès qu'il faut gérer l'Unicode complet.
| Critère | CODE | CARACT | UNICODE | UNICAR |
|---|---|---|---|---|
| Direction | Texte -> Nombre | Nombre -> Texte | Texte -> Nombre | Nombre -> Texte |
| Plage de codes | 1-255 (ASCII) | 1-255 (ASCII) | 1-1114111 (Unicode) | 1-1114111 (Unicode) |
| Emojis | Non | Non | Oui | Oui |
| Accents français | Oui | Oui | Oui | Oui |
| Usage typique | Validation, parsing | Génération de texte | Analyse internationale | Symboles Unicode |
Astuces avancées avec CODE
Convertir la casse via le code ASCII
Tu peux transformer une majuscule en minuscule en ajoutant 32 à son code : =CARACT(CODE("A")+32) retourne "a". La différence de 32 est constante pour toutes les lettres de l'alphabet.
Bien sûr, MINUSCULE() fait la même chose plus simplement, mais comprendre cette logique t'aide à construire des conversions de casse personnalisées quand les fonctions standard ne suffisent pas.
Générer une séquence alphabétique automatique
Crée une colonne A, B, C... Z automatiquement : =CARACT(64+LIGNE()). En ligne 1, tu obtiens "A" (64+1=65), en ligne 2 "B", etc.
Cette technique est parfaite pour créer des étiquettes de colonnes, des codes de catégorie ou des identifiants séquentiels basés sur l'alphabet.
Créer un chiffrement César basique
Pour décaler chaque lettre de N positions dans l'alphabet, utilise : =CARACT(CODE(A1)+3) pour décaler de 3 positions. "A" devient "D", "B" devient "E", etc.
Attention : cette méthode simple ne gère pas le bouclage (Z+1 ne redevient pas A). Pour un vrai chiffrement, tu dois ajouter une condition SI avec la fonction MOD.
Questions fréquentes sur la fonction CODE
CODE ne retourne que le premier caractère ?
Oui, exactement. CODE analyse uniquement le premier caractère de ton texte. Si tu écris =CODE("BONJOUR"), tu obtiens 66 (le code de "B").
Pour obtenir les codes des autres lettres, tu dois combiner CODE avec STXT ou DROITE pour extraire chaque caractère individuellement.
Quelle est la différence entre CODE et UNICODE ?
CODE utilise le jeu de caractères ASCII standard (codes de 0 à 255), parfait pour les lettres latines et les symboles de base. UNICODE couvre l'ensemble du standard international, incluant les emojis, les alphabets non-latins et les caractères mathématiques.
Pour un usage quotidien avec des textes français, CODE suffit largement. Passe à UNICODE seulement si tu manipules des emojis ou des alphabets asiatiques.
Quels sont les codes ASCII des chiffres 0 à 9 ?
Les chiffres vont de 48 pour "0" jusqu'à 57 pour "9". Par exemple, CODE("5") retourne 53.
Cette plage continue facilite la détection des chiffres dans un texte en vérifiant simplement si le code est compris entre 48 et 57.
Comment convertir une position alphabétique en lettre avec CARACT ?
Utilise la fonction CARACT qui fait l'inverse de CODE. Pour obtenir la lettre en position 5, écris =CARACT(64+5) qui retournera "E". Le code 65 correspondant à "A", tu ajoutes simplement ta position à 64.
Cette astuce permet de générer des colonnes A, B, C... Z automatiquement avec une formule basée sur le numéro de ligne.
CODE peut-elle gérer les accents et caractères spéciaux ?
Oui, CODE retourne bien un code pour les caractères accentués. Par exemple, CODE("é") renvoie 233, CODE("à") renvoie 224.
Tous les caractères de la table ASCII étendue (128-255) sont supportés, ce qui couvre l'ensemble des accents français.
Pour aller plus loin
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

