Drahnur2
Messages postés31Date d'inscriptionmercredi 28 juin 2006StatutMembreDernière intervention 9 janvier 2009
-
9 nov. 2006 à 09:58
Drahnur2
Messages postés31Date d'inscriptionmercredi 28 juin 2006StatutMembreDernière intervention 9 janvier 2009
-
10 nov. 2006 à 10:50
Voila je cherche a faire un convertisseur de couleur hexadécimale (ex: #562290) en code RGB (x, x, x) sur Excel.
J'ai trouver un code avec une message box mais ce que je cherche a faire en fait c'est qu'un utilisateur puisse entrer une valeur en Hexadécimal dans un cellulle prévue a cet effet et qu'en cliquant sur le bouton pour convertir cela affiche les chiffres convertis dans 3 cellules différentes ... J'ai un bout de code mais cela ne fonctionne pas ... :
Private Sub ConvertirHexDec_Click()
On Error GoTo Annuler
Dim Couleurs As Long
Couleurs = ActiveCell.Offset(3, 1).Value
If Couleurs > 16777215 Or Couleurs < 0 Then MsgBox "Erreur veuillez recommencer": GoTo Annuler
ActiveCell.Offset(3, 2).Value = Couleurs - (256 * Int((Couleurs - (Int(Couleurs / 65536) * 65536)) / 256) + (65536 * Int(Couleurs / 65536)))
ActiveCell.Offset(3, 3).Value = Int((Couleurs - (Int(Couleurs / 65536) * 65536)) / 256)
ActiveCell.Offset(3, 4).Value = Int(Couleurs / 65536)
Annuler:
End Sub
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 9 nov. 2006 à 16:29
Re,
Alors,
- Il ne se passe rien car en fait il y a une incomptaibilité de type (masque car On Error Goto Annuler) = > pour développer je te conseil de l'enlever car au moins si il y a une erreur tu la verras.
- Ensuite: je te marque ActiveSheet.Range ("A1").Value et toi tu recopie ActiveCell.Offset("A3").Value
Voila déjà cela te permet au moins d'avoir des récultat dans les cellules souhaités.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 9 nov. 2006 à 17:01
Re,
Ceci
couleur.substr(0,2) pourrais se traduire par Mid(couleur, 1, 2) MAIS ATTENTION AVEC COULEUR AS STRING
couleur.substr(2,2) pourrais se traduire par Mid(couleur, 3, 2) couleur.substr(4,2) pourrais se traduire par Mid(couleur, 5, 2)
Pour le Number() Je pense que c'est la convertion Hexadécimal = > Décimal Essaie peu etre alors
Cdec("&H" & Mid(couleur, 5, 2))
Ensuite stocke les resultat dans des variable
Soit
Dim Coulr As Integer
Dim Coulb As Integer
Dim Coulg As Integer
Dim Couleur As String
Couleur = "FFC0C0"
Coulr = CDec("&H" & Mid (Couleur, 1, 2))
Coulg = CDec("&H" & Mid(Couleur, 3, 2))
Coulb = CDec("&H" & Mid (Couleur, 5, 2))
Le var je vois pas
@+: =89254 Ju£i?n Pensez: Réponse acceptée
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 10 nov. 2006 à 09:16
Salut,
Si le code posté est tel quel dans ton classeur c'est normal ...
IL faudrait peu etre ajouter un option Explicit en haut de toute tes feuille de code. cela t'éviterais des erreurs
Tu as mis Couleur au Pluriel = > Hors ce n'est pas une variables déclarer
De plus TU AS MAL RECOPIE Ce n'est ActiveCell.Range("A3") MAIS ActiveSHEET.Range("A3").Value
Soit:
Option Explicit
Private Sub ConvertirHexDec_Click()
Dim Coulr As Integer
Dim Coulb As Integer
Dim Coulg As Integer
Dim Couleur As String
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 10 nov. 2006 à 10:40
Salut,
Et bien tu utilises la Fonction Hex() qui te renvoie la valeur Hexadecimal et tu concatene la valeur.
Private Sub ConvertirDecHex_Click()
Dim Coulr As Integer
Dim Coulb As Integer
Dim Coulg As Integer
'Récupère la composante Rouge
Coulr = ActiveSheet.Range("B3").Value
'Récupère la composante Verte
Coulg = ActiveSheet.Range("C3").Value
'Récupère la composante Bleu
Coulb = ActiveSheet.Range("D3").Value
'Utilise la fonction Hex et concaténation
ActiveSheet.Range("E3").Value = CStr (Hex(Coulr)) & CStr(Hex(Coulg)) & CStr(Hex(Coulb))
End Sub
Note: Cela ne sert a rien de mettre réponse acceptée si tu l'enlèves après.... Ce qu'il faut c'est utilser ce réponse acceptée sur le OU les posts qui ont pu t'aider a avancer dans ton problème.
@+: =89254 Ju£i?n Pensez: Réponse acceptée
Drahnur2
Messages postés31Date d'inscriptionmercredi 28 juin 2006StatutMembreDernière intervention 9 janvier 2009 9 nov. 2006 à 10:14
Oui en fait cela s'affiche n'importe ou et des fois sa s'affiche pas .. et je ne suis pas sur du calcul ... ça maffiche des 0 n'importe ou la pluspart du temps ...
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 9 nov. 2006 à 10:21
Salut,
Theoriquement pour ton calcule.
Couleurs= la cellule 3 lignes en dessous et une colonne a droite de la cellule active... Est ce que c'est réellement la valeur que tu souhaite pour ton calcul?
De meme les résultat seront 3 lignes en dessous et 2, 3 , 4 colonne a droite.
Est ce que c'est réellement ce que tu souhaite?
Drahnur2
Messages postés31Date d'inscriptionmercredi 28 juin 2006StatutMembreDernière intervention 9 janvier 2009 10 nov. 2006 à 08:56
Ok merci.
Voici mon code :
Private Sub ConvertirHexDec_Click()
Dim Coulr As Integer
Dim Coulb As Integer
Dim Coulg As Integer
Dim Couleur As String
Couleurs = ActiveCell.Range("A3").Value
Coulr = CDec("&H" & Mid(Couleur, 1, 2))
Coulg = CDec("&H" & Mid(Couleur, 3, 2))
Coulb = CDec("&H" & Mid(Couleur, 5, 2))