DECHEX, HEXDEC et =850*77,1

Le
garnote
Bonsoir,

Sous Excel 2007, la formule …0*77,1
a déjà affiché, paraît-il, 100 000 plutôt que 65 535.
Je n'ai pas ce problème chez moi.
Je suis un peu en retard; ce bogue d'affichage
est corrigé depuis quand ?
Mais :
Si j'entre …0*77,1 ( 65 535 ) en A1 et si j'entre en A2
ÞCHEX(A1), j'obtiens FFFE, ce qui est une erreur.
La preuve c'est que si j'entre en A3 =HEXDEC(A2),
j'obtiens 65 534, qui est une bonne réponse.
Alors dans ce cas, il me semble que c'est plus
qu'une simple erreur d'affichage.
Qu'en pensez-vous ?
Et comment savoir si d'autres nombres obtenus par calcul
ne mèneront pas aussi à un résultat erronné ?
J'ai concocté deux fonctions personnalisées ( dh et hd )
qui miment, en mieux ( ;-) ), DECHEX et HEXDEC appliquées
à des nombres entiers positifs.
La fonction DECHEX renvoie une erreur si le nombre est
plus grand que 549 755 813 887 et la mienne me semble
correcte jusqu'à 999 999 999 999 999.
Quant à la fonction HEXDEC, l'aide indique que l'argument
nombre ne doit pas comporter plus de 10 caractères.
La mienne en accepte un plus grand nombre mais je ne
sais pas encore jusqu'où elle demeure compétente.
Un exemple amusant ! :
Si A1 contient aaaaaaaaaa, =HEXDEC(A1) donne -366 503 875 926
et = hd(A1) donne 733 007 751 850.
Tous vos commentaires sur cette situation seront grandement appréciés.

Public Function dh(n) As String
Dim x(1 To 100)
Dim r(1 To 100)
Dim table
table = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F")
x(1) = n
i = 1
Do Until x(i) = 0
i = i + 1
x(i) = Int(x(i - 1) / 16)
r(i - 1) = x(i - 1) - 16 * x(i)
Loop
For j = i - 1 To 1 Step -1
rep = rep & table(r(j))
Next j
dh = rep
End Function

Public Function hd(n As String) As Double
x = Len(n)
For i = x To 1 Step -1
c = UCase(Mid(n, i, 1))
ca = Asc(c)
Select Case ca
Case 48 To 57: nd = nd + c * 16 ^ (x - i)
Case 65 To 70: nd = nd + (ca - 55) * 16 ^ (x - i)
End Select
Next i
hd = nd
End Function


Bonne soirée,
Serge
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
garnote
Le #18638941
Salut André,

As-tu fait les dernières mises à jour ?

Au sujet de ce problème :
http://blogs.microsoft.fr/franckha/archive/2007/09/26/62667.aspx

Serge




"andre"
Bonsoir,


chez moi office 2007
850*77,1= 100000
si vous avez un correctif a proposer
je prends
salutations
andre

--
andre



andre
Le #18644191
> Salut André,

As-tu fait les dernières mises à jour ?

Au sujet de ce problème :
http://blogs.microsoft.fr/franckha/archive/2007/09/26/62667.aspx

Serge


j'ai fait la derniere mise a jour office 2007
le bug est toujours la
mais ils disent que le correctif n'est pas pret
(ou j'ai mal lu)
si tu as un lien vers la maj merci
andre

--
andre
Misange
Le #18644871
Bonjour

le correctif est présent dans le SP1 d'office 2007. Un correctif séparé
a été dispo assez vite (on comprends pourquoi !) après la mise en
évidence de ce bug mais je ne sais pas si on le trouve encore. En tous
cas je te confirme que le SP1 corrige ce bug.

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

andre a écrit :
Salut André,

As-tu fait les dernières mises à jour ?

Au sujet de ce problème :
http://blogs.microsoft.fr/franckha/archive/2007/09/26/62667.aspx

Serge


j'ai fait la derniere mise a jour office 2007
le bug est toujours la
mais ils disent que le correctif n'est pas pret
(ou j'ai mal lu)
si tu as un lien vers la maj merci
andre



Publicité
Poster une réponse
Anonyme