Conversion HEX --> DEC problème ... (Excel) [Résolu]

Signaler
Messages postés
31
Date d'inscription
mercredi 28 juin 2006
Statut
Membre
Dernière intervention
9 janvier 2009
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Hello tout le monde !

Alors voila sa fait déjà un petit moment que j'en ai fait appel a votre aide pour trouver le code qui perméttais de convertir un code de trois nombres (Décimal) en code Héxadécimal et vice et versa (Dans mon cas il s'agit de couleurs). Alors voila mon projet a avancé mais j'ai remarqué un petit bug ou sans doute une erreur de code...

Je vous explique :

Lorsque le résultat d'une conversion DEC / HEX commence par un "0" le 0 disparait.
Il faut savoir que mon logiciel convertis 3 valeurs Décimale en 1 Héxadécimale donc il y a des 0 qui disparaissent au millieu de mon résultat en Hexadécimal ce qui me donne une couleur en Hexa mais qui contient que 4 caractère par exemple ...
Je voulais savoir si il existait une fonction plus efficace pour la conversion ou ce que vous me conseillez de faire.

Bon c'est pas facile a expliquer donc je suis à disposition pour toute question.
Vous pouvez télécharger le fichier en question sur http://www.vd.ch/fileadmin/user_upload/typo3_canton_vaud/accessibilite/fichiers_xls/Testeur_Couleur_jan2007.xls

Merci d'avance !

10 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
Essaye de remplacer tes CStr(Hex(...)) par Format(Hex(...),"00")

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
A ce moment là, il faut le gere à la main et rajouter un 0 devant si par exemple la longueur de chaque conversion est =1 au lieu de 2

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Quel mécanisme utilises-tu pour convertir 3 nombres décimaux en 1 seul héxadécimal ?
De quoi parles-tu, en fait ?
Serait-ce simplement transformer R, G et B en un seul long ?(par exemple : R 25, G 70 et B = 201 à transformer en la couleur exprimée en un long ?)
Messages postés
31
Date d'inscription
mercredi 28 juin 2006
Statut
Membre
Dernière intervention
9 janvier 2009

Casy: Merci sa marche tip top !

jmfmmarques: Jette un coup d'oeil au programme tu va vite comprendre ;) En fait je convertis les couleurs RGB en Hexa (Compatibles Web).
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Ceci devrait te permettre de mieux tout voir

3 lebels label1, label2 et label3 et :

Private Sub Command1_Click()
  Label1.BackColor = RGB(124, 90, 24)
  titi = RGB(124, 90, 24)
  toto = "&H" & Hex(RGB(124, 90, 24))
  Label2.BackColor = toto
  Label3.BackColor = titi
  MsgBox "en hexa : " & toto & "    en long = " & titi
End Sub

Tu devraius avoir ainsi la réponse à toutes tes questions !
Messages postés
31
Date d'inscription
mercredi 28 juin 2006
Statut
Membre
Dernière intervention
9 janvier 2009

Désolé pour le doublon -_-

Après quelques testes sa fonctionne pas parfaitement en fait ^^

Quand la convertion donne un résultat comme 0A, 0B, 0C etc.. cela me supprime le 0 ^^ Par contre c'est bon pour les résultat du type 00, 01, 02 etc.
Messages postés
31
Date d'inscription
mercredi 28 juin 2006
Statut
Membre
Dernière intervention
9 janvier 2009

Je suis déja passé par ta solution jmfmarques mais le but de ce petit outil n'etais pas de toute le temps faire apparaitre des msgbox ... la manière avec laquelle j'ai fait cet outil est simple, le but étant de pouvoir comparer plusieurs couleurs de fond et de texte.



Petite parenthèse cet outil est déstiné à simplifier la vie des graphistes pour rendre leur site accessible aux malvoyants au niveau des contrastes et de la luminosité des couleur.
Messages postés
31
Date d'inscription
mercredi 28 juin 2006
Statut
Membre
Dernière intervention
9 janvier 2009

casy: Je pensais justement a une solution avec un test des valeurs dans mon code et un ajout ;) Donc tu confirme bien mon idée Merci encore ;)
Messages postés
31
Date d'inscription
mercredi 28 juin 2006
Statut
Membre
Dernière intervention
9 janvier 2009

Est-ce qu'on peut faire un "case" en VBA ?
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Si tu parles d'un Select Case, oui on peut en VBA

MPi