La fonction DECHEX (DEC2HEX en anglais) convertit un nombre décimal en sa représentation hexadécimale. Indispensable dès que tu travailles avec des codes couleurs CSS, de la programmation, de l'électronique ou de l'analyse de données binaires dans Excel.
Concrètement, elle te sert à générer des palettes de couleurs #RRGGBB à partir de valeurs RGB, à convertir des registres de microcontrôleurs pour les comparer avec une datasheet, ou encore à produire des identifiants hexadécimaux à partir de calculs numériques. Zéro calcul manuel, la formule fait tout.
Syntaxe de la fonction DECHEX
=DECHEX(nombre; [nb_caractères])Les nombres négatifs sont représentés en complément à deux sur 40 bits (10 caractères hexadécimaux) : DECHEX(-1) renvoie FFFFFFFFFF.
Comprendre chaque paramètre de la fonction DECHEX
DECHEX prend deux arguments dont l'ordre compte : d'abord le nombre décimal à transformer, puis le nombre de chiffres hexadécimaux que tu veux afficher. Seul le second est facultatif, mais c'est lui qui fait toute la différence pour les codes couleurs : sans lui, un 0 reste 0 au lieu de devenir 00.
nombre
: le nombre décimal à convertirIl doit être compris entre -549755813888 et 549755813887. Tu peux y mettre une valeur directe comme 255, une référence de cellule comme A1, ou le résultat d'un calcul comme A1*16+B1.
Si le nombre est négatif, Excel l'encode en complément à deux sur 40 bits : la représentation affichée est toujours positive en apparence (FFFFFFFFFF pour -1) mais elle n'a pas la même signification qu'un positif. Toute valeur hors de la plage déclenche une erreur #NOMBRE!.
Attention : Ne passe pas de texte non numérique dans cet argument : =DECHEX("ABC") renvoie #VALEUR!. Protège ta formule avec =SIERREUR(DECHEX(A1); "Valeur invalide").
[nb_caractères]
: le nombre minimum de chiffres hexadécimaux à afficher, de 1 à 10(facultatif)Si le résultat naturel est plus court, Excel complète avec des zéros à gauche : =DECHEX(15; 4) renvoie 000F au lieu de F.
Si tu omets ce paramètre, Excel n'affiche que les chiffres nécessaires. Si tu fournis une valeur trop petite pour contenir le résultat, Excel renvoie #NOMBRE! : =DECHEX(1000; 2) échoue car 1000 = 3E8 (3 caractères).
Astuce : Pour les codes couleurs CSS, fixe toujours nb_caractères = 2 par composante RGB : ="#"&DECHEX(R;2)&DECHEX(G;2)&DECHEX(B;2). Sans cela, la valeur 0 s'afficherait 0 au lieu de 00, ce qui produirait un code invalide.
Exemples pratiques pas à pas
Design web : générer des codes couleurs CSS
Tu crées une palette de couleurs pour un site web et tu dois convertir les composantes Rouge, Vert, Bleu (valeurs de 0 à 255) en codes hexadécimaux pour le CSS. Chaque composante doit tenir sur exactement deux caractères, zéros inclus.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rouge | Vert | Bleu | Code CSS |
| 2 | 255 | 0 | 0 | #FF0000 |
| 3 | 0 | 255 | 0 | #00FF00 |
| 4 | 0 | 0 | 255 | #0000FF |
| 5 | 255 | 255 | 255 | #FFFFFF |
="#"&DECHEX(A2;2)&DECHEX(B2;2)&DECHEX(C2;2)La formule convertit chaque composante R, V, B en hexadécimal sur 2 caractères et les colle derrière le préfixe #. Le paramètre 2 est ce qui garantit qu'un 0 s'écrit 00 et non 0, sinon le code couleur serait invalide.
Astuce de pro : DECHEX renvoie du texte en majuscules. Si ton client exige des minuscules (#ff0000), enveloppe avec =MINUSCULE("#"&DECHEX(A1;2)&DECHEX(B1;2)&DECHEX(C1;2)).
Électronique : convertir des valeurs de registres
Tu programmes un microcontrôleur et les datasheets indiquent les valeurs de registres en hexadécimal. Tu as calculé tes valeurs en décimal dans Excel et tu veux les convertir pour les comparer ou les copier dans ton code.
| A | B | C | |
|---|---|---|---|
| 1 | Décimal | Hexadécimal | Usage courant |
| 2 | 0 | 0 | Registre vide |
| 3 | 127 | 7F | Valeur signée max (7 bits) |
| 4 | 256 | 100 | Nouvelle page mémoire |
| 5 | 4095 | FFF | Valeur 12 bits max |
=DECHEX(4095)La fonction convertit 4095 en FFF, soit tous les bits à 1 sur 12 bits (configuration classique d'un ADC). Sans second argument, elle n'affiche que les chiffres nécessaires ; précise-le si ton registre impose une largeur fixe.
Sécurité informatique : formater des adresses mémoire
Tu analyses des offsets mémoire ou des signatures de fichiers extraits en décimal et tu veux les présenter sous forme d'adresses 32 bits lisibles (8 caractères hexadécimaux), comme dans un dump de débogueur.
| A | B | C | |
|---|---|---|---|
| 1 | Cellule A | Formule en B | Résultat |
| 2 | 100 | =DECHEX(A1;8) | 00000064 |
| 3 | 1000 | =DECHEX(A2;8) | 000003E8 |
| 4 | 1234567 | =DECHEX(A3;8) | 0012D687 |
| 5 | 16777215 | =DECHEX(A4;8) | 00FFFFFF |
=DECHEX(1234567;8)Le second argument (8) formate chaque valeur sur 8 caractères en complétant par des zéros à gauche : 1234567 devient 0012D687, le format attendu d'une adresse 32 bits dans un dump de débogueur.
Administration réseau : convertir des octets d'adresses
Tu documentes des configurations réseau et tu dois convertir des octets d'adresses IP ou MAC de leur forme décimale vers l'hexadécimal, séparés par des deux-points.
| A | B | C | |
|---|---|---|---|
| 1 | Octet 1 | Octet 2 | Résultat |
| 2 | 192 | 168 | C0:A8 |
| 3 | 10 | 0 | 0A:00 |
| 4 | 255 | 254 | FF:FE |
=DECHEX(192;2)&":"&DECHEX(168;2)La formule convertit chaque octet en hexadécimal sur 2 caractères et les assemble avec le deux-points comme séparateur. Le 2 est indispensable pour qu'un 10 s'affiche 0A et non A ; étends-la à autant d'octets que nécessaire.
Contrôle qualité : générer des identifiants hexadécimaux
Tu crées un système de traçabilité et tu veux des identifiants hexadécimaux courts mais uniques à partir de numéros de série séquentiels. L'hexadécimal est plus compact : 2000 en décimal devient 7D0 en hexa.
| A | B | C | |
|---|---|---|---|
| 1 | Lot | Numéro de série | ID hex |
| 2 | A | 1000 | 003E8 |
| 3 | A | 1001 | 003E9 |
| 4 | B | 2000 | 007D0 |
| 5 | B | 2001 | 007D1 |
=DECHEX(B2;5)La fonction convertit le numéro de série en hexadécimal sur 5 caractères, soit jusqu'à FFFFF (1 048 575 en décimal) : 1000 devient l'identifiant 003E8. Ajuste le nombre de caractères selon ton volume maximal prévu.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction DECHEX
Avec DECHEX, le couac le plus fréquent est le #NOMBRE! : il tombe dès que ta valeur sort de la plage -549755813888 à 549755813887, mais aussi, plus sournoisement, quand tu réclames moins de chiffres qu'il n'en faut (=DECHEX(1000; 2) plante car 3E8 réclame 3 caractères). Les autres pièges viennent du texte glissé dans la cellule source (#VALEUR!) et des zéros oubliés qui cassent un code couleur.
Erreur #NOMBRE! sur une valeur hors plage
DECHEX n'accepte que les entiers compris entre -549755813888 et 549755813887. Au-delà, #NOMBRE! est inévitable. La même erreur survient si nb_caractères est inférieur au nombre de chiffres requis : =DECHEX(1000; 2) échoue car 1000 = 3E8 nécessite 3 caractères.
Solution : Vérifie la plage de tes valeurs sources. Enveloppe ta formule avec =SIERREUR(DECHEX(A1); "Hors plage") pour afficher un message clair. Si nb_caractères est en cause, augmente-le ou omets-le.
Erreur #VALEUR! quand la cellule contient du texte
Si la cellule source contient du texte non numérique (par exemple "ABC" ou une cellule vide interprétée comme texte), DECHEX renvoie #VALEUR!.
Solution : Utilise =SIERREUR(DECHEX(A1); "Valeur invalide") pour gérer les cas de saisie incorrecte. Si tu suspectes un nombre stocké en texte, convertis d'abord avec =CNUM(A1).
Code couleur CSS invalide (manque de zéros)
Sans le paramètre nb_caractères = 2, DECHEX(0) renvoie 0 et non 00. La concaténation donne #FF000 au lieu de #FF0000, code invalide en CSS.
Solution : Toujours spécifier nb_caractères = 2 pour chaque composante : ="#"&DECHEX(R;2)&DECHEX(G;2)&DECHEX(B;2).
Résultat en minuscules inattendu
DECHEX produit normalement des majuscules, mais une mise en forme ou une conversion de cellule peut introduire des minuscules, ce qui peut poser problème dans des systèmes qui distinguent la casse.
Solution : Enveloppe avec =MAJUSCULE(DECHEX(A1)) pour garantir des majuscules dans tous les cas.
Astuces avancées avec DECHEX
Arrondir avant de convertir pour des codes propres
Si ta source est un calcul décimal comme 255*0.6, le résultat peut être 152.999... et donner un hexadécimal inattendu. Arrondis d'abord avec =DECHEX(ARRONDI(A1*0.6;0);2) pour travailler sur un entier propre.
Un arrondi mal placé avant conversion produit des codes couleurs décalés qui ne se voient qu'à l'affichage.
Protéger une colonne entière avec SIERREUR
Quand tu traites une liste où certaines cellules peuvent être vides ou hors plage, enveloppe systématiquement : =SIERREUR(DECHEX(A1;2);" "). La chaîne de deux espaces en fallback préserve l'alignement visuel de la colonne.
Cette précaution évite que quelques #NOMBRE! sporadiques cassent l'esthétique d'un rapport.
Double conversion binaire vers hexadécimal
Tu as des chaînes binaires dans ta feuille et tu veux les convertir en hexa sans étape intermédiaire visible. Imbrique BINDEC dans DECHEX : =DECHEX(BINDEC("11111111")) renvoie FF directement.
Cette combinaison est utile pour les analystes qui exportent des données binaires depuis des outils de capture.
Questions fréquentes sur la fonction DECHEX
Pourquoi utiliser l'hexadécimal plutôt que le décimal ?
L'hexadécimal est plus compact pour représenter de grandes valeurs binaires. Un octet (8 bits) s'écrit avec seulement 2 caractères hexadécimaux (00 à FF) contre 3 en décimal (0 à 255). En informatique et en design web, c'est la notation de référence pour les codes couleurs, les adresses mémoire et les registres de composants.
Comment fonctionne le paramètre nb_caractères ?
Il définit le nombre minimum de chiffres hexadécimaux à afficher. Si le résultat naturel est plus court, Excel complète avec des zéros à gauche. DECHEX(15; 4) donne 000F au lieu de F. Il doit être compris entre 1 et 10. Si tu le fixes trop petit pour contenir le résultat, Excel renvoie #NOMBRE!.
Quelle est la plage de valeurs acceptées ?
La fonction accepte les entiers de -549755813888 à 549755813887. Au-delà, tu obtiens #NOMBRE!. Les nombres négatifs sont encodés en complément à deux sur 40 bits (10 caractères hexa) : -1 devient FFFFFFFFFF, ce qui est cohérent avec les conventions des systèmes 40 bits.
Comment gérer les erreurs quand la source peut être invalide ?
Enveloppe DECHEX dans SIERREUR : =SIERREUR(DECHEX(A1); "Invalide"). Ce motif couvre les erreurs #NOMBRE! (valeur hors plage ou nb_caractères trop petit) et #VALEUR! (texte non numérique). Tu peux mettre "" comme fallback pour afficher une cellule visuellement vide.
Peut-on combiner DECHEX avec d'autres fonctions de conversion ?
Oui. Pour passer du binaire à l'hexadécimal en une étape, utilise =DECHEX(BINDEC("11111111")) qui renvoie FF. Pour l'octal, =DECHEX(OCTTODEC(...)). Pour arrondir avant conversion, imbrique ARRONDI : =DECHEX(ARRONDI(A1;0);2). Les fonctions de conversion d'ingénierie se combinent librement.
La fonction fonctionne-t-elle dans Google Sheets ?
Non, DECHEX est spécifique à Excel. Dans Google Sheets, l'équivalent s'appelle DEC2HEX et fonctionne de manière identique. Si tu collabores sur des fichiers partagés entre les deux outils, note que les noms de fonctions ne sont pas interchangeables.
Pour aller plus loin
Les fonctions similaires : HEXDEC, DECBIN, DECOCT, SIERREUR, CONCATENER
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
