DÉCIMAL TO HEXDECIMAL

Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
- - Dernière réponse : NHenry
Messages postés
14565
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
- 24 janv. 2012 à 19:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/54014-decimal-to-hexdecimal

Afficher la suite 
NHenry
Messages postés
14565
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
136 -
Bonjour,

Normal que ton code arrive à plus, tu n'a pas déclaré tes variables, du coup, elles sont Variant, donc pour plus, tu passes en Double, tu perds pas mal de précision par contre.

Mets TOUJOURS Option Explicit en haut de tout tes modules de code en VB6 et VBA.
loulou27200
Messages postés
3
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
2 août 2011
-
Effectivement ton code est plus court
Mais je débute dans la programmation que je connais pas toutes les fonctions, ton code bloc à 2147483648 alors que le mien semble pouvoir dépasser cette valeur.
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
Presse papier toujours une faille, mais code plus court :

Option Explicit

Private Const ES_NUMBER As Long = &H2000&
Private Const GWL_STYLE As Long = -16

Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub Form_Load()
SetWindowLong Text1.hwnd, GWL_STYLE, GetWindowLong(Text1.hwnd, GWL_STYLE) Or ES_NUMBER
End Sub

Private Sub Text1_Change()
Label1.Caption = DecToHexa2(Text1.Text)
End Sub

Public Function DecToHexa2(ByRef StringNb As String) As String
If Val(StringNb) Then
DecToHexa2 = Hex$(StringNb)
Else
DecToHexa2 = "0"
End If
End Function
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
oui, mais on ne controle pas la saisie a la volée, c'est souvent vecteur d'inconfort...

rien n'empeche de saisir des caractères non autorisés via le presse papier.

voir le flag ES_NUMBER :
http://www.codyx.org/snippet_textbox-numerique-seulement_53.aspx
loulou27200
Messages postés
3
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
2 août 2011
-
Pourquoi ce n'est pas bon! le control text est destiné à recevoir des chiffres et non du text, je prévois que l'utilisateur se trompe!!