Conversion hexadec

Bonjour à tous,

Dans le cadre de mon nouveau boulot je dois apprendre le VBA. Je n'ai jamais coder avant ça donc c'est pas évident. J'ai quand même suivi certains cours sur internet.

J'ai voulu faire une conversion hexa vers décimal à la mano (je sais que la fonction existe déjà), mtn j'aimerais additionner toutes les valeurs mais je sais pas trop comment faire au lieu d'avoir 4 fenêtres avec 4 valeurs j'aurai aimé qu'une seule fenêtre avec l'addition de tous les nombres.

Sub macro()
Dim valeur, valeur_test As String
Dim Message, Title
Dim asci
Dim dec
Title = "conversion hexadec"
Message = "Veuillez taper une adresse héxadécimale 4 caractères"
valeur = InputBox(Message, Title)
Max = Len(valeur)
Debug.Print "Length(valeur) = " & Max
For i = 1 To Max
    asci = (Asc(Mid(valeur, i))) - 48

    Debug.Print "ASCII = " & asci

    If asci > 9 Then

    asci = asci - 7

    End If
MsgBox "votre valeur est : " & asci
Next
End Sub

Merci d'avance.

bonjour,

pour afficher les 4 caractères en une fois plutôt que chaque caractère 1 à 1 voici.

Sub macro()
    Dim valeur, valeur_test As String
    Dim Message, Title
    Dim asci, reponse
    Dim dec
    Title = "conversion hexadec"
    Message = "Veuillez taper une adresse héxadécimale 4 caractères"
    valeur = InputBox(Message, Title)
    Max = Len(valeur)
    Debug.Print "Length(valeur) = " & Max
    reponse = ""
    For i = 1 To Max
        asci = (Asc(Mid(valeur, i))) - 48

        Debug.Print "ASCII = " & asci

        If asci > 9 Then

            asci = asci - 7

        End If
        reponse = reponse + asci
    Next
    MsgBox "votre valeur est : " & reponse
End Sub

Par contre, ton algorithme de conversion doit être complété pour tenir compte de la position du chiffre hexadécimal dans l'addition, je te laisse faire.

bonjour,

je ne comprends pas ce que vient faire le code ASCII si le but est de convertir un nombre Hexadécimale en décimale!

val("&h" & 48)=72

Bonjour,

Je ne comprends pas cette ligne : val("&h" & 48)=72

Oui mon but est de convertir un nombre hexadécimal en décimal, mais le problème que je rencontre c'est surtout quand j'ai des adresses avec des bits en A,B,C,D,E ou F.

D'où l'idée de convertir un string en long.

Quant au poids des bits je bloque dessus.

Je répète que ce sont vraiment les premières lignes de code que j'écris.

Merci d'avance.

Je viens de taper ça

reponse = Val("&h" & valeur)

Malheureusement la valeur renvoyée par reponse est -1503 (il renvoie la valeur décimal du complément signé 2), or la valeur que je recherche est 64033

Bonjour

Hexadecimal tout comme decimal est un système de numération positionnel. voici ton code complété.

Sub macro()
    Dim valeur, valeur_test As String
    Dim Message, Title
    Dim asci, reponse, lm
    Dim dec
    Title = "conversion hexadec"
    Message = "Veuillez taper une adresse héxadécimale 4 caractères"
    valeur = UCase(InputBox(Message, Title))
    lm = Len(valeur)
    Debug.Print "Length(valeur) = " & lm
    reponse = 0
    For i = 1 To lm
        asci = (Asc(Mid(valeur, i))) - 48
        Debug.Print "ASCII = " & asci
        If asci > 9 Then
            asci = asci - 7
        End If
        reponse = reponse + asci * 16 ^ (lm - i)
    Next
    MsgBox "votre valeur est : " & reponse
End Sub

Super merci beaucoup.

C'est cette ligne là que je n'arrivais pas à trouver : reponse = reponse + asci * 16 ^ (lm - i)

Mais j'ai compris pourquoi tu as fait ça, un immense merci à vous :)

bonjour,

Debug.print CLng("&hFA21"),CLng("&h7FFFFFFF"),cdbl("&h7FFFFFFF")

le résulta est bien 64033

pour le 64Bits CLngLng

Rechercher des sujets similaires à "conversion hexadec"