bonjour,
Je voudrais additionner 2 nombres hexa , mais je ne sais pas comment faire.
Exemple :j'ai un nombre : 42 FF FF FF je voudrais lui ajouter 1 pour trouver :
43 00 00 00
Si quelqu'un a une idée :D
Merci
Version imprimable
bonjour,
Je voudrais additionner 2 nombres hexa , mais je ne sais pas comment faire.
Exemple :j'ai un nombre : 42 FF FF FF je voudrais lui ajouter 1 pour trouver :
43 00 00 00
Si quelqu'un a une idée :D
Merci
bonjour,
en essayant de faire
ça marche pas?Code:
1
2 cdbl(ton hex)
CDbl permet de convertir en double si je ne me trompes pas .Hors je veux juste additionner 2 nombres hexa .
Pour être plus clair , j'ai un nombre hexa qui est 42 FF FF FF et je veux en faisant une addition trouver 43 00 00 00 00.
Merci
si je comprends bien, tu veux trouver l'hexa qui te permettra d'arriver à 43 00 00 00 00Citation:
Pour être plus clair , j'ai un nombre hexa qui est 42 FF FF FF et je veux en faisant une addition trouver 43 00 00 00 00.
donc la différence
Oui en partie,en faites je veux addition 42 FF FF FF à un autre nombre hexa pour trouver 43 00 00 00 00
Voila , c'est clair ??
Merci :mouarf:
ben tu pourrais les convertir en double pour faire le calcul
et convertir le résultat en hexadedimal non?
Bah je sais pas ,lol .Tu verrais ça comment ?
Je converti en double mon hexa ? je lui rajoute 1 et je le reconverti en hexa?
soit x = "43 00 00 00" converti en double
soit y= la variable hexadecimale
on pourrait avoir un truc du genre
Code:
1
2
3
4
5 z= x-y resultat=HEX$(z)
Oula , désolé mais je n'ai pas compris la :(
ben je peux pas etre plus clair
on transforme les deux hexa en double, on cherche la différence
et on transforme en hexa le résultat obtenu.
Le code ressemble donc a ca :
Seulement y me sort incompatibilité de typeCode:
1
2
3
4
5
6
7 y = CDbl("42FFFFFF") x = CDbl("43000000") z = x - y resultat = Hex$(z) MsgBox (z)
Salut
Je croyais, qu'en basic (donc en VB ou en VBA), une valeur hexadécimales se préfixait avec une esperluette suivie d'un H et qu'il ne devait pas y avoir d'espace... Exemple, dans un module standard tu mets
et dans une formule de cellule (en A3, par exemple), en supposant que ta valeur hexadécimales se trouve en A2Code:
1
2
3
4
5
6 Function IncrementeValHex(valeurHex As Range) As String Dim temp As String ' récupère la valeur de la cellule en éliminant les espaces temp = Replace(valeurHex.Value, " ", "") IncrementeValHex = Format(Hex(CDbl("&H" & temp) + 1), "## ## ## 00") End Function
Code:=IncrementeValHex(A2)
Ca marche pas :? .Je vais vous expliquer mon problème différement.Sur ma feuille excel j'ai une multitude de valeur Hexadécimal ,je précise que ces valeurs sont aléatoires je ne les connaîs pas à l'avance .Je veux donc trouver une fonction ou méthode permettant d'ajouter 1 à chaque valeur hexadécimal .
Exemple :
42 FF FF FF ; on lui ajoute 1 en hexa ca donne ---> 43 00 00 00
40 D4 CC CC ;----------------------> 40 D4 CC CD
Vous voyez ce que je ve dire??
Merci
Histoire d'être bien certaine que j'ai compris : Tu veux incrémenter les valeurs hexadécimale d'une plage de cellules et afficher le résultat dans cette même plage de cellules ?
Il est où, le problème ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Function IncrementeValHex(valeurHex As Range) As String Dim temp As String ' récupère la valeur de la cellule en éliminanat les espaces temp = Replace(valeurHex.Value, " ", "") IncrementeValHex = Format(Hex(CDbl("&H" & temp) + 1), "## ## ## 00") End Function sub IncrementerPlageValHex() Dim cellule As Range For Each cellule In Selection cellule.Value = IncrementeValHex(cellule) Next cellule End Sub
Il me sort incompatibilité de type à cette ligne :
PS :Sachant que ma plage de valeurs se trouve de C2 à C100Code:IncrementeValHex = Format(Hex(CDbl("&H" & temp) + 1), "## ## ## 00")
:oops: Je n'avais pas testé
Par contre, zazaraignée, ta solution qui fonctionne avec "42FFFFFF" comme première valeur, ne fonctionne plus si on prend les valeurs
Val1 = "42FFFFFE"
Val2 = "43000000"
Comment fixes-tu le complément à XXFFFFFF ?Code:
1
2
3
4
5
6
7
8 Sub test2() Val1 = "42FFFFFE" Val2 = "43000000" y = Format(Hex(CDbl("&H" & Val1) + 1), "## ## ## 00") x = Format(Hex(CDbl("&H" & Val2 + 1)), "## ## ## 00") z = CDbl(x) - CDbl(y) MsgBox Hex(z) End Sub
Sinon, tu as une fonction de ce genre (si tu peux mettre des formules) :
=dec2hex(Hex2Dec(A1)+1)
Qui marche bien.
En A1, j'avais mis ton nombre (42 FF FF FF), mais par contre il faut enlever les espaces :)
Ok ,merci pour vos réponse ,je vais essayer tout ça et je vous tiens au courant.
Mercii:king: