Qu'est-ce que la fonction DECHEX ?
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
=DECHEX(nombre; [nb_caractères])Clique sur un argument pour aller à son explication.
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).

Exemples pratiques pas à pas
Comment générer un code couleur CSS avec la fonction DECHEX
La charte graphique du site te parvient en valeurs Rouge, Vert, Bleu, mais l'intégrateur, lui, n'accepte que des codes #RRGGBB et attend la palette complète. Tu as trois colonnes de 0 à 255 par élément, et tu veux le code CSS assemblé en face de chacun. La fonction DECHEX traduit chaque composante en hexadécimal, et une simple concaténation te livre le code prêt à coller.
- 1Dans une cellule, écris
=puis le dièse entre guillemets,"#", et complète par&. Tout code couleur CSS s'ouvre par ce caractère, et les guillemets sont ce qui indique à Excel de l'afficher tel quel plutôt que d'y voir un calcul. - 2Écris
DECHEX(pour la première composante, puis :- aEn 1er argument : clique sur la cellule qui porte le rouge,
B2. Elle affiche255, et chaque composante de la charte tient entre0et255, exactement ce que couvrent deux caractères hexadécimaux. - bEn 2ᵉ argument : saisis le nombre de chiffres à afficher,
2. Le rouge255remplit déjà cette largeur avecFF, mais l'imposer aux trois composantes est ce qui garantit un code de six caractères sur chaque ligne.
- aEn 1er argument : clique sur la cellule qui porte le rouge,
- 3Écris
)puis les deux autres appels,&DECHEX(C2; 2)pour le vert et&DECHEX(D2; 2)pour le bleu. Le vert vaut0sur cette ligne et ressort donc en00, là où il aurait tenu sur un seul caractère et décalé la fin du code. - 4Appuie sur Entrée pour valider. Les trois parenthèses se sont refermées au fil de la saisie, une par appel, et les esperluettes recollent le tout derrière le dièse en
#FF0080.
="#"&DECHEX(B2; 2)&DECHEX(C2; 2)&DECHEX(D2; 2)#. Le 2 porte tout l'exemple : sans lui, le vert à 0 s'écrirait 0 au lieu de 00 et la même ligne sortirait #FF080, un code que le navigateur refuse.Comment lire un nombre négatif converti par la fonction DECHEX
Tu convertis des écarts de mesure qui oscillent autour de zéro et ta colonne devient illisible : les lignes négatives s'étalent sur dix caractères pendant que les positives en font trois. Rien n'est cassé pour autant, c'est la convention d'encodage qui veut ça, et la connaître t'évite de croire à un bug. Comprendre ce que la fonction DECHEX fabrique sur un négatif te dit aussi comment le relire.
- 1Dans une cellule, écris
=DECHEX(. - 2En 1er argument : clique sur la cellule qui porte l'écart mesuré,
A2. Elle affiche-1, et c'est le signe de cette valeur qui décide à lui seul de la longueur du résultat. - 3Ferme la parenthèse et appuie sur Entrée. Recopie ensuite la formule vers le bas pour convertir chaque écart de la colonne, positif comme négatif.
=DECHEX(A2)-1 qui ressort FFFFFFFFFF paraît énorme alors qu'il vaut bien moins un, tandis qu'un positif comme 1023 reste court avec 3FF.Comment gérer l'erreur #NOMBRE! de la fonction DECHEX avec SIERREUR
Tu imposes deux caractères à ta colonne pour tenir un format d'octet, sauf qu'une valeur au-dessus de 255 s'est glissée dans la source et pique un #NOMBRE! au milieu du tableau. Tu veux que les valeurs qui tiennent se convertissent normalement et que les autres portent une mention explicite. En imbriquant ta fonction DECHEX dans une fonction SIERREUR, tu décides toi-même de ce qui s'affiche à la place de l'erreur.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris la conversion à surveiller et referme-la,
DECHEX(A2; 2). Elle traduit le200de la première ligne de données enC8, et le2impose deux chiffres hexadécimaux à toute la colonne. - 3En 2ᵉ argument : saisis le texte de repli entre guillemets,
"Trop long". Les guillemets sont ce qui indique à Excel d'afficher ce texte tel quel, et il ne prend la place du résultat que sur les lignes où la conversion échoue, comme le1000dont l'écriture hexadécimale3E8réclame trois chiffres. - 4Ferme la parenthèse de la fonction SIERREUR et appuie sur Entrée. Celle de la fonction DECHEX a déjà été refermée dans son étape.
=SIERREUR(DECHEX(A2; 2); "Trop long")#NOMBRE! : 1000 s'écrit 3E8 et ne rentre pas sur deux caractères. La fonction SIERREUR intercepte ce cas précis et affiche « Trop long » à la place du code d'erreur.
Les 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 mention tapée à la main comme "N/A"), DECHEX renvoie #VALEUR!. Une cellule vide, elle, vaut zéro et renvoie 0.
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
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.
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!.
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.
Oui. Pour passer du binaire à l'hexadécimal en une étape, utilise =DECHEX(BINDEC("11111111")) qui renvoie FF. Pour l'octal, =DECHEX(OCTDEC("777")) qui renvoie 1FF. Pour arrondir avant conversion, imbrique ARRONDI : =DECHEX(ARRONDI(A1;0);2). Les fonctions de conversion d'ingénierie se combinent librement.
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
Continue sur ta lancée après la fonction DECHEX : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



