Aller au contenu principal

Qu'est-ce que la fonction DECHEX ?

Définition
La fonction DECHEX convertit un entier décimal en texte hexadécimal (base 16). Elle accepte les valeurs positives et négatives et renvoie un résultat sur 1 à 10 caractères.

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

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.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

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.

1

nombre

: le nombre décimal à convertir

Il 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").

2

[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).

Le savais-tu ?
Un nombre négatif ne sort pas avec un signe moins : DECHEX l'encode en complément à deux sur 40 bits, soit 10 caractères. DECHEX(-1) renvoie FFFFFFFFFF, une valeur qui paraît énorme mais qui vaut bien -1.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

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.

Les étapes
  1. 1
    Dans 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. 2
    Écris DECHEX( pour la première composante, puis :
    1. aEn 1er argument : clique sur la cellule qui porte le rouge, B2. Elle affiche 255, et chaque composante de la charte tient entre 0 et 255, exactement ce que couvrent deux caractères hexadécimaux.
    2. bEn 2ᵉ argument : saisis le nombre de chiffres à afficher, 2. Le rouge 255 remplit déjà cette largeur avec FF, mais l'imposer aux trois composantes est ce qui garantit un code de six caractères sur chaque ligne.
  3. 3
    Écris ) puis les deux autres appels, &DECHEX(C2; 2) pour le vert et &DECHEX(D2; 2) pour le bleu. Le vert vaut 0 sur cette ligne et ressort donc en 00, là où il aurait tenu sur un seul caractère et décalé la fin du code.
  4. 4
    Appuie 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.
Au final, ta formule devrait ressembler à ça :="#"&DECHEX(B2; 2)&DECHEX(C2; 2)&DECHEX(D2; 2)
Explication
Chaque appel de la fonction DECHEX traduit une composante sur deux caractères, et l'esperluette recolle le tout derrière le #. 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.
Exemple 2

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.

Les étapes
  1. 1
    Dans une cellule, écris =DECHEX(.
  2. 2
    En 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.
  3. 3
    Ferme 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.
Voici la formule que tu obtiens à la fin :=DECHEX(A2)
Explication
Ici, la fonction DECHEX n'écrit jamais de signe moins : elle code les négatifs en complément à deux sur 40 bits, ce qui occupe systématiquement les 10 caractères. Un -1 qui ressort FFFFFFFFFF paraît énorme alors qu'il vaut bien moins un, tandis qu'un positif comme 1023 reste court avec 3FF.
Exemple 3

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.

Les étapes
  1. 1
    Dans une cellule, écris =SIERREUR(.
  2. 2
    En 1er argument : écris la conversion à surveiller et referme-la, DECHEX(A2; 2). Elle traduit le 200 de la première ligne de données en C8, et le 2 impose deux chiffres hexadécimaux à toute la colonne.
  3. 3
    En 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 le 1000 dont l'écriture hexadécimale 3E8 réclame trois chiffres.
  4. 4
    Ferme 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.
Une fois les morceaux assemblés, ta formule donne ça :=SIERREUR(DECHEX(A2; 2); "Trop long")
Explication
Quand la valeur réclame plus de caractères que le second argument n'en autorise, la fonction DECHEX refuse de tronquer et renvoie #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.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

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.

Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec DECHEX

1Astuce

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.

2Astuce

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.

3Astuce

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.

Le combo gagnant
Tu peux enchaîner les conversions sans étape intermédiaire : imbrique BINDEC dans DECHEX pour passer d'une chaîne binaire à l'hexadécimal d'un coup. DECHEX(BINDEC(11111111)) renvoie FF directement.
FAQ

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.

Ressources

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