Comment faire dans Excel pour convertir un nombre dans une autre base,
comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255
et je voudrais que ça me sorte FF à la place.
Merci
--
Le site du MIN de NICE, fleurs, produits alimentaires, ...
http://www.mindenice.fr/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Julien PHAM
Le Wed, 13 Dec 2006 16:24:24 +0100, Julien PHAM a écrit:
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base, comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255 et je voudrais que ça me sorte FF à la place.
Merci
Bon j'ai trouvé, en rajoutant l'outil Analyse. Par contre maintenant je me demande s'il y a des moyens de faire des conversions de n'importe quelle base vers n'importe quelle base, par exemple je voudrais convertir une base 10 en base 20, des trucs comme ça :)
Merci
-- Le site du MIN de NICE, fleurs, produits alimentaires, ... http://www.mindenice.fr/
Le Wed, 13 Dec 2006 16:24:24 +0100, Julien PHAM
<julien.pham@alussinan.org> a écrit:
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base,
comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255
et je voudrais que ça me sorte FF à la place.
Merci
Bon j'ai trouvé, en rajoutant l'outil Analyse. Par contre maintenant je me
demande s'il y a des moyens de faire des conversions de n'importe quelle
base vers n'importe quelle base, par exemple je voudrais convertir une
base 10 en base 20, des trucs comme ça :)
Merci
--
Le site du MIN de NICE, fleurs, produits alimentaires, ...
http://www.mindenice.fr/
Le Wed, 13 Dec 2006 16:24:24 +0100, Julien PHAM a écrit:
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base, comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255 et je voudrais que ça me sorte FF à la place.
Merci
Bon j'ai trouvé, en rajoutant l'outil Analyse. Par contre maintenant je me demande s'il y a des moyens de faire des conversions de n'importe quelle base vers n'importe quelle base, par exemple je voudrais convertir une base 10 en base 20, des trucs comme ça :)
Merci
-- Le site du MIN de NICE, fleurs, produits alimentaires, ... http://www.mindenice.fr/
Daniel
Bonjour. Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le binaire et l'octal respectivement (ceux qui ont utilisé cette dernière fonction ont gagné la fonction BAHTEXT). Cordialement. Daniel "Julien PHAM" a écrit dans le message de news:
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base, comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255 et je voudrais que ça me sorte FF à la place.
Merci
-- Le site du MIN de NICE, fleurs, produits alimentaires, ... http://www.mindenice.fr/
Bonjour.
Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le
binaire et l'octal respectivement (ceux qui ont utilisé cette dernière
fonction ont gagné la fonction BAHTEXT).
Cordialement.
Daniel
"Julien PHAM" <julien.pham@alussinan.org> a écrit dans le message de news:
op.tkh7qysbfs6ejm@frsv01.prive.sominice.fr...
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base,
comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255
et je voudrais que ça me sorte FF à la place.
Merci
--
Le site du MIN de NICE, fleurs, produits alimentaires, ...
http://www.mindenice.fr/
Bonjour. Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le binaire et l'octal respectivement (ceux qui ont utilisé cette dernière fonction ont gagné la fonction BAHTEXT). Cordialement. Daniel "Julien PHAM" a écrit dans le message de news:
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base, comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255 et je voudrais que ça me sorte FF à la place.
Merci
-- Le site du MIN de NICE, fleurs, produits alimentaires, ... http://www.mindenice.fr/
Julien PHAM
Le Wed, 13 Dec 2006 16:32:21 +0100, Daniel a écrit:
Bonjour. Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le binaire et l'octal respectivement (ceux qui ont utilisé cette dernière fonction ont gagné la fonction BAHTEXT). Cordialement.
Merci. Et si je veux une autre base ? J'ai entendu parler de la fonction BASE() qui permet de convertir un nombre de la base 10 en n'importe quelle base jusqu'à 36, mais je ne trouve pas cette fonction. Elle est censée se trouver dans un fichier ADDINFNS.XLA, mais inconnu au bataillon. Une idée ?
L'idée c'est que j'ai besoin de pouvoir convertir un nombre allant jusqu'à 999 en une suite de caractères ne dépassant pas deux caractères.
Merci
Le Wed, 13 Dec 2006 16:32:21 +0100, Daniel <dZZZcolardelle@free.fr> a
écrit:
Bonjour.
Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le
binaire et l'octal respectivement (ceux qui ont utilisé cette dernière
fonction ont gagné la fonction BAHTEXT).
Cordialement.
Merci. Et si je veux une autre base ? J'ai entendu parler de la fonction
BASE() qui permet de convertir un nombre de la base 10 en n'importe quelle
base jusqu'à 36, mais je ne trouve pas cette fonction. Elle est censée se
trouver dans un fichier ADDINFNS.XLA, mais inconnu au bataillon. Une idée ?
L'idée c'est que j'ai besoin de pouvoir convertir un nombre allant jusqu'à
999 en une suite de caractères ne dépassant pas deux caractères.
Le Wed, 13 Dec 2006 16:32:21 +0100, Daniel a écrit:
Bonjour. Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le binaire et l'octal respectivement (ceux qui ont utilisé cette dernière fonction ont gagné la fonction BAHTEXT). Cordialement.
Merci. Et si je veux une autre base ? J'ai entendu parler de la fonction BASE() qui permet de convertir un nombre de la base 10 en n'importe quelle base jusqu'à 36, mais je ne trouve pas cette fonction. Elle est censée se trouver dans un fichier ADDINFNS.XLA, mais inconnu au bataillon. Une idée ?
L'idée c'est que j'ai besoin de pouvoir convertir un nombre allant jusqu'à 999 en une suite de caractères ne dépassant pas deux caractères.
Merci
Daniel
Voila une macro fournie par MS : http://support.microsoft.com/kb/135635/en-us si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques de la traduction automatique) Daniel "Julien PHAM" a écrit dans le message de news:
Le Wed, 13 Dec 2006 16:32:21 +0100, Daniel a écrit:
Bonjour. Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le binaire et l'octal respectivement (ceux qui ont utilisé cette dernière fonction ont gagné la fonction BAHTEXT). Cordialement.
Merci. Et si je veux une autre base ? J'ai entendu parler de la fonction BASE() qui permet de convertir un nombre de la base 10 en n'importe quelle base jusqu'à 36, mais je ne trouve pas cette fonction. Elle est censée se trouver dans un fichier ADDINFNS.XLA, mais inconnu au bataillon. Une idée ?
L'idée c'est que j'ai besoin de pouvoir convertir un nombre allant jusqu'à 999 en une suite de caractères ne dépassant pas deux caractères.
Merci
Voila une macro fournie par MS :
http://support.microsoft.com/kb/135635/en-us
si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques de
la traduction automatique)
Daniel
"Julien PHAM" <julien.pham@alussinan.org> a écrit dans le message de news:
op.tkh8njuqfs6ejm@frsv01.prive.sominice.fr...
Le Wed, 13 Dec 2006 16:32:21 +0100, Daniel <dZZZcolardelle@free.fr> a
écrit:
Bonjour.
Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le
binaire et l'octal respectivement (ceux qui ont utilisé cette dernière
fonction ont gagné la fonction BAHTEXT).
Cordialement.
Merci. Et si je veux une autre base ? J'ai entendu parler de la fonction
BASE() qui permet de convertir un nombre de la base 10 en n'importe quelle
base jusqu'à 36, mais je ne trouve pas cette fonction. Elle est censée se
trouver dans un fichier ADDINFNS.XLA, mais inconnu au bataillon. Une idée
?
L'idée c'est que j'ai besoin de pouvoir convertir un nombre allant jusqu'à
999 en une suite de caractères ne dépassant pas deux caractères.
Voila une macro fournie par MS : http://support.microsoft.com/kb/135635/en-us si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques de la traduction automatique) Daniel "Julien PHAM" a écrit dans le message de news:
Le Wed, 13 Dec 2006 16:32:21 +0100, Daniel a écrit:
Bonjour. Utilise DECHEX pour l'hexadécimal, tu as aussi DECBIN et DECOCT pour le binaire et l'octal respectivement (ceux qui ont utilisé cette dernière fonction ont gagné la fonction BAHTEXT). Cordialement.
Merci. Et si je veux une autre base ? J'ai entendu parler de la fonction BASE() qui permet de convertir un nombre de la base 10 en n'importe quelle base jusqu'à 36, mais je ne trouve pas cette fonction. Elle est censée se trouver dans un fichier ADDINFNS.XLA, mais inconnu au bataillon. Une idée ?
L'idée c'est que j'ai besoin de pouvoir convertir un nombre allant jusqu'à 999 en une suite de caractères ne dépassant pas deux caractères.
Function Base(b, n) Do While n >= b result = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", IIf(n Mod b > 0, (n Mod b) + 1, 1), 1) & result n = n b Loop Base = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", IIf(n Mod b > 0, (n Mod b) + 1, 1), 1) & result End Function
Sub essai() x = 73 MsgBox Base(36, x) End Sub
JB
Le Wed, 13 Dec 2006 16:24:24 +0100, Julien PHAM a écrit:
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base, comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255 et je voudrais que ça me sorte FF à la place.
Merci
Bon j'ai trouvé, en rajoutant l'outil Analyse. Par contre maintenant je me demande s'il y a des moyens de faire des conversions de n'importe quelle base vers n'importe quelle base, par exemple je voudrais convertir une base 10 en base 20, des trucs comme ça :)
Merci
-- Le site du MIN de NICE, fleurs, produits alimentaires, ... http://www.mindenice.fr/
Function Base(b, n)
Do While n >= b
result = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", IIf(n Mod b >
0, (n Mod b) + 1, 1), 1) & result
n = n b
Loop
Base = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", IIf(n Mod b > 0,
(n Mod b) + 1, 1), 1) & result
End Function
Sub essai()
x = 73
MsgBox Base(36, x)
End Sub
JB
Le Wed, 13 Dec 2006 16:24:24 +0100, Julien PHAM
<julien.pham@alussinan.org> a écrit:
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base,
comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255
et je voudrais que ça me sorte FF à la place.
Merci
Bon j'ai trouvé, en rajoutant l'outil Analyse. Par contre maintenant je me
demande s'il y a des moyens de faire des conversions de n'importe quelle
base vers n'importe quelle base, par exemple je voudrais convertir une
base 10 en base 20, des trucs comme ça :)
Merci
--
Le site du MIN de NICE, fleurs, produits alimentaires, ...
http://www.mindenice.fr/
Function Base(b, n) Do While n >= b result = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", IIf(n Mod b > 0, (n Mod b) + 1, 1), 1) & result n = n b Loop Base = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", IIf(n Mod b > 0, (n Mod b) + 1, 1), 1) & result End Function
Sub essai() x = 73 MsgBox Base(36, x) End Sub
JB
Le Wed, 13 Dec 2006 16:24:24 +0100, Julien PHAM a écrit:
Bonjour,
Comment faire dans Excel pour convertir un nombre dans une autre base, comme par exemple en Hexa. Exemple : j'ai dans une cellule la valeur 255 et je voudrais que ça me sorte FF à la place.
Merci
Bon j'ai trouvé, en rajoutant l'outil Analyse. Par contre maintenant je me demande s'il y a des moyens de faire des conversions de n'importe quelle base vers n'importe quelle base, par exemple je voudrais convertir une base 10 en base 20, des trucs comme ça :)
Merci
-- Le site du MIN de NICE, fleurs, produits alimentaires, ... http://www.mindenice.fr/
Julien PHAM
Le Wed, 13 Dec 2006 17:20:08 +0100, Daniel a écrit:
Voila une macro fournie par MS : http://support.microsoft.com/kb/135635/en-us si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques de la traduction automatique)
Merci. C'est intéressant mais la fonction demande à être améliorée, parce que si la base est supérieure à 10, ça ne marche pas, en fait il faudrait transformer la valeur résultante par une suite de lettres/chiffres.
Exemple, avec cette fonction si je demande BaseConv(255,16), je devrai obtenir FF, or ça me sort 1515. Il faudrait donc que si le résultat de chaque conversion soit supérieur ou égal à 9, il me mette une lettre à la place. Donc faut que je cherche des fonctions permettant d'afficher une lettre en utilisant leur code ascii, et vice versa...
-- Le site du MIN de NICE, fleurs, produits alimentaires, ... http://www.mindenice.fr/
Le Wed, 13 Dec 2006 17:20:08 +0100, Daniel <dZZZcolardelle@free.fr> a
écrit:
Voila une macro fournie par MS :
http://support.microsoft.com/kb/135635/en-us
si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques
de
la traduction automatique)
Merci. C'est intéressant mais la fonction demande à être améliorée, parce
que si la base est supérieure à 10, ça ne marche pas, en fait il faudrait
transformer la valeur résultante par une suite de lettres/chiffres.
Exemple, avec cette fonction si je demande BaseConv(255,16), je devrai
obtenir FF, or ça me sort 1515. Il faudrait donc que si le résultat de
chaque conversion soit supérieur ou égal à 9, il me mette une lettre à la
place. Donc faut que je cherche des fonctions permettant d'afficher une
lettre en utilisant leur code ascii, et vice versa...
--
Le site du MIN de NICE, fleurs, produits alimentaires, ...
http://www.mindenice.fr/
Le Wed, 13 Dec 2006 17:20:08 +0100, Daniel a écrit:
Voila une macro fournie par MS : http://support.microsoft.com/kb/135635/en-us si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques de la traduction automatique)
Merci. C'est intéressant mais la fonction demande à être améliorée, parce que si la base est supérieure à 10, ça ne marche pas, en fait il faudrait transformer la valeur résultante par une suite de lettres/chiffres.
Exemple, avec cette fonction si je demande BaseConv(255,16), je devrai obtenir FF, or ça me sort 1515. Il faudrait donc que si le résultat de chaque conversion soit supérieur ou égal à 9, il me mette une lettre à la place. Donc faut que je cherche des fonctions permettant d'afficher une lettre en utilisant leur code ascii, et vice versa...
-- Le site du MIN de NICE, fleurs, produits alimentaires, ... http://www.mindenice.fr/
Julien PHAM
Le Wed, 13 Dec 2006 17:20:08 +0100, Daniel a écrit:
Voila une macro fournie par MS : http://support.microsoft.com/kb/135635/en-us si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques de la traduction automatique)
Voilà, j'ai modifié la fonction, et elle donne : Function baseconv(InputNum, BaseNum)
Dim quotient, remainder As Single Dim answer As String quotient = InputNum ' Set quotient to number to convert. remainder = InputNum ' Set remainder to number to convert. answer = ""
If BaseNum >= 1 And BaseNum <= 36 Then Do While quotient <> 0 ' Loop while quotient is not zero.
' Store the remainder of the quotient divided by base number in a ' variable called remainder. remainder = quotient Mod BaseNum
' Reset quotient variable to the integer value of the quotient ' divided by base number. quotient = Int(quotient / BaseNum)
' Reset answer to contain remainder and the previous answer. ' answer = remainder & answer If (remainder >= 10) Then answer = Chr(remainder - 10 + 65) & answer Else answer = remainder & answer End If
Loop Else answer = "#VALEUR!" End If
baseconv = answer ' Convert answer variable to a number.
End Function
En même temps elle vérifie que la base à convertir est comprise entre 1 et 36, car en dehors des ces zones ça ne peut pas marcher...
Le Wed, 13 Dec 2006 17:20:08 +0100, Daniel <dZZZcolardelle@free.fr> a
écrit:
Voila une macro fournie par MS :
http://support.microsoft.com/kb/135635/en-us
si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques
de
la traduction automatique)
Voilà, j'ai modifié la fonction, et elle donne :
Function baseconv(InputNum, BaseNum)
Dim quotient, remainder As Single
Dim answer As String
quotient = InputNum ' Set quotient to number to convert.
remainder = InputNum ' Set remainder to number to convert.
answer = ""
If BaseNum >= 1 And BaseNum <= 36 Then
Do While quotient <> 0 ' Loop while quotient is not zero.
' Store the remainder of the quotient divided by base number
in a
' variable called remainder.
remainder = quotient Mod BaseNum
' Reset quotient variable to the integer value of the quotient
' divided by base number.
quotient = Int(quotient / BaseNum)
' Reset answer to contain remainder and the previous answer.
' answer = remainder & answer
If (remainder >= 10) Then
answer = Chr(remainder - 10 + 65) & answer
Else
answer = remainder & answer
End If
Loop
Else
answer = "#VALEUR!"
End If
baseconv = answer ' Convert answer variable to a number.
End Function
En même temps elle vérifie que la base à convertir est comprise entre 1 et
36, car en dehors des ces zones ça ne peut pas marcher...
Le Wed, 13 Dec 2006 17:20:08 +0100, Daniel a écrit:
Voila une macro fournie par MS : http://support.microsoft.com/kb/135635/en-us si tu ne lis pas l'anglais, remplace en-us par fr (avec tous les risques de la traduction automatique)
Voilà, j'ai modifié la fonction, et elle donne : Function baseconv(InputNum, BaseNum)
Dim quotient, remainder As Single Dim answer As String quotient = InputNum ' Set quotient to number to convert. remainder = InputNum ' Set remainder to number to convert. answer = ""
If BaseNum >= 1 And BaseNum <= 36 Then Do While quotient <> 0 ' Loop while quotient is not zero.
' Store the remainder of the quotient divided by base number in a ' variable called remainder. remainder = quotient Mod BaseNum
' Reset quotient variable to the integer value of the quotient ' divided by base number. quotient = Int(quotient / BaseNum)
' Reset answer to contain remainder and the previous answer. ' answer = remainder & answer If (remainder >= 10) Then answer = Chr(remainder - 10 + 65) & answer Else answer = remainder & answer End If
Loop Else answer = "#VALEUR!" End If
baseconv = answer ' Convert answer variable to a number.
End Function
En même temps elle vérifie que la base à convertir est comprise entre 1 et 36, car en dehors des ces zones ça ne peut pas marcher...