Conversion hex/dec VB

Fermé
Chouq - 26 avril 2022 à 14:31
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 - 26 avril 2022 à 15:48
Bonjour,

J'ai utilisé ce code dans une macro excel :

Function hexadecimal_en_decimal(chaine_hexa)
resultat = 0
For i = Len(chaine_hexa) To 1 Step -1 ' Depuis i = longueur chaine à i = 1
longueur = Mid(chaine_hexa, i, 1) ' renvoit le (1) caractère à partir de la position i de la chaine (on commence donc par la fin)
Position = InStr("0123456789ABCDEF", UCase(longueur)) - 1 ' On prend milieu, on met en majuscule au cas où on aurait écrit abcdef au lieu de ABCDEF,
' On met dans position la position du 1er caractère de milieu dans 0123456789ABCDEF et on retire 1 => on a converti de l'hexa en dec
If Position >= 0 Then
valeur = Position * (16 ^ (Len(chaine_hexa) - i)) ' Formule de maths de conversion
resultat = resultat + valeur
Else
resultat = 0
i = 0 ' Fin de la boucle en cas d'erreur
End If
Next
hexadecimal_en_decimal = resultat
End Function

Ca fonctionne mais à la fin de mon chiffre DEC je n'ai que des 0, alors que normalement je devrais avoir autre chose je pense que le code que j'utilise à une limite de caratère mais je n'arrive pas à solutionner le pb.

Quelqu'un peut m'aider ?

Merci

Configuration: Windows / Firefox 78.0
A voir également:
  • Conversion hex/dec VB
  • Hex editor - Télécharger - Édition & Programmation
  • Hxd hex editor - Télécharger - Gestion de fichiers
  • Vb cable - Télécharger - Audio & Musique
  • Vb - Télécharger - Langages
  • Cygnus hex editor - Télécharger - Agendas & Calendriers

1 réponse

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
26 avril 2022 à 15:48
Bonjour,

un peu plus simple:
https://forums.commentcamarche.net/forum/affich-5053964-conversion-hex-dec-en-vb
Hubck
18 janv. 2012 à 11:55
Bonjour,

je sais que c'est vieux comme sujet, mais étant donné que je viens de le trouver....
Si ça peut servir à d'autres, je viens d'écrire ma fonction :

Function Hex2Dec(Hexa As String) As Double
Dim i As Integer, Multi As Integer
Hex2Dec = 0
Hexa = UCase(Trim(Hexa))
If Not Hexa Like "*[G-Z]*" Then
For i = 1 To Len(Hexa)
Multi = CInt("&H" & (Mid(Hexa, Len(Hexa) - i + 1, 1)))
Hex2Dec = Hex2Dec + (Multi * 16 ^ (i - 1))
Next i
End If
End Function

Modifié par Hubck le 18/01/2012 à 12:35
0