De l'héxadécimal au binaire...

  • Initiateur de la discussion Initiateur de la discussion Nico
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

Nico

Guest
Re bonjour!!

je connais ce bout de code:
strHex = Range('a1').Value
Résultat= CDec('&H' & strHex)
Range('a2').Value = Résultat

Qui permet de passer une valeur Héxa à une valeur décimale.

Mais j'aimerai connaitre une fonction similaire qui me fasse passer de l'héxa à du binaire et une autre à de l'ASCII...

Une idée??
Merci
 
Merci à vous deux!!

Seulement j'ai besoin de l'écrire dans une macro car je fais un traitement sur plusieurs lignes d'un fichiers...
Je dois donc trouver le code associé, et pour ces fonctions je ne trouve pas la syntaxe en VBA...

Pouvez vous m'éclairer?
 
Re

Je viens de trouver ceci sur le site vbfrance

je te le mets pele-mele :

Code:
'//TOUTES TRADUCTIONS PARTANT DU BINAIRE
Public Function DecToBin(DecVal As Double) As String
Dim a As Double
a = DecVal
    For b = 1 To Int(Log(DecVal) / Log(2)) + 1
        DecToBin = CDbl(a Mod 2) & DecToBin
        a = CDbl(Int(a / 2))
    Next b
End Function

Public Function DecToHex(DecVal As Double) As String
Dim a As Double, b As Double, c As String, d As Double
    a = DecVal
    For b = 1 To Int(Log(DecVal) / Log(16)) + 1
        d = CDbl(a Mod 16)
        Select Case d
            Case 0 To 9
                c = d
            Case Else
                c = Chr(55 + d)
        End Select
        DecToHex = c & DecToHex
        a = CDbl(Int(a / 16))
    Next b
End Function

'//TOUTES TRADUCTIONS AYANT POUR BASE LA FORME BINAIRE
Public Function BinToDec(Bin As String) As Double
Dim TotalDec As Double, a As Double
    For a = 1 To Len(Bin)
        TotalDec = (TotalDec * 2) + Mid(Bin, a, 1)
    Next a
    BinToDec = TotalDec
End Function

Public Function BinToHex(Bin As String) As String
    BinToHex = DecToHex(BinToDec(Bin))
End Function

'//TOUTES TRADUCTIONS AYANT POUR BASE L'HEXADÉCIMAL
Public Function HexToDec(HexVal As String) As Double
Dim TotalDec As Double, a As Double, c As Double
    For a = 1 To Len(HexVal)
        Select Case (Mid(HexVal, a, 1))
            Case 0 To 9
                c = (Mid(HexVal, a, 1))
            Case Else
                c = (Asc(Mid(HexVal, a, 1)) - 55)
        End Select
        TotalDec = (TotalDec * 16) + c
    Next a
    HexToDec = TotalDec
End Function

Public Function HexToBin(HexVal As String) As String
    HexToBin = DecToBin(HexToDec(HexVal))
End Function

Bon courage
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
251
Réponses
11
Affichages
406
Réponses
5
Affichages
896
Retour