Fonction Format associée à la fonction Hex

avelis Messages postés 22 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 6 août 2006 - 18 août 2005 à 11:28
avelis Messages postés 22 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 6 août 2006 - 24 août 2005 à 12:23
Bonjour à tous, j'ai un petit problème... En effet soit :

intColor = 255 (Rouge)

Je fais : Format(intColor, "000000" j'obtiens : 000255 donc OK.

Maintenant je le veux sous forme Hexa : 0000FF...

Je fais : Format(Hex(intColor), "000000") et il me met : FF !!!

Pourquoi cette fois il ne met plus les zéros non significatifs ??

Merci beaucoup si vous avez une solution ! Je continue de chercher de mon côté...

10 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 août 2005 à 11:45
parce que Hex c'est une chaîne

donc Format ici ne convient pas.







Dim s As String

s = Hex(intColor)

MsgBox String$(6 - Len(s), "0") & s


Daniel
0
avelis Messages postés 22 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 6 août 2006
18 août 2005 à 12:09
Merci, j'ai compris que ça pouvait pas marcher dans le cas où le nombre s'écrit avec des caractères hexa (A-F) donc j'ai fait la petite procédure suivante :

Dim strR As String
Dim strG As String
Dim strB As String
Dim strColor As String

strR = Hex(dlgFont.Color And 255)
strG = Hex(dlgFont.Color \ 256 And 255)
strB = Hex(dlgFont.Color \ 65536 And 255) If Len(strR) 1 Then strR "0" & strR If Len(strG) 1 Then strG "0" & strG If Len(strB) 1 Then strB "0" & strB
strColor = strR & strG & strB

Et là plus aucun problème !!
Dommage que la fonction Format ne prenne pas en compte A-F comme digits hexa enfin bon, là ca marche !
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
18 août 2005 à 12:22
Salut, petite astuce en une ligne :

Replace(Format(Hex(intColor), "@@@@@@@@"), " ", "0")

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 août 2005 à 12:30
exact Canis

mais le monsieur il veut le Rouge devant

Daniel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avelis Messages postés 22 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 6 août 2006
18 août 2005 à 12:48
Merci à vous, en tout cas c'est pas mal du tout ça CanisLupus, je peux déjà simplifier la routine y'a plus qu'à permuter Rouge et Bleu ;)

Bien vu !
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
18 août 2005 à 13:09
Alors, toujours en une seule ligne :

MsgBox Replace(Format(Hex(dlgFont.Color And 255) & Hex(dlgFont.Color \ 256 And 255) & Hex(dlgFont.Color \ 65536 And 255), "@@@@@@"), " ", "0")

Dis moi si ça te convient.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
avelis Messages postés 22 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 6 août 2006
18 août 2005 à 13:26
Curieux je pensais que ca marcherait mais ca fait une sorte de décalage de bits par moment (on dirait) enfin je vais me débrouiller avec. Juste une question où as-tu trouvé le fait qu'on puisse utiliser [mailto:'@' '@'] (ca marche bien) dans la fonction Format car je n'ai pas ça dans mon aide. Il me donne juste les '0', '#' ... et autres caractères de base.

En tout cas merci.
0
avelis Messages postés 22 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 6 août 2006
18 août 2005 à 13:37
Ah c'est bon j'ai trouvé un site qui dit tout sur la fonction Format, je l'indique pour ceux à qui ça peut servir : http://www.apostate.com/programming/vb-format/
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
18 août 2005 à 14:17
Pas mal du tout cette url.
Pour l'aide dans vb voici où je l'ai trouvé :


[javascript:alink_4.Click() expression] de mise en forme pour chaînes :


Caractère,
Description,
----

@,
Espace réservé à un caractère. Affichage d'un caractère ou d'un espace. Si la chaîne contient un caractère à la position occupée par le symbole @ dans l'expression de mise en forme, ce caractère est affiché ; sinon, un espace est affiché à cet emplacement. Les espaces réservés sont remplis de droite à gauche, à moins que la chaîne de mise en forme ne contienne un point d'exclamation (!).,
----

&,
Espace réservé à un caractère. Affichage d'un caractère ou de rien d'autre. Si la chaîne contient un caractère à la position occupée par le signe & ce caractère est affiché ; sinon, rien n'est affiché. Les espaces réservés sont remplis de droite à gauche, à moins que la chaîne ne contienne un point d'exclamation (!).,
----

<,
Mise en minuscules. Tous les caractères sont affichés en minuscules.,
----

>,
Mise en majuscules. Tous les caractères sont affichés en majuscules.,
----

!,
Remplissage des espaces réservés de gauche à droite. Par défaut, le remplissage s'effectue de droite à gauche.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
avelis Messages postés 22 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 6 août 2006
24 août 2005 à 12:23
ok merci bien ;)
0
Rejoignez-nous