Mise en couleur caractère à partir d'un code hexadécimal
Résolu/Fermé
Miura564
Messages postés
13404
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 février 2015
-
7 févr. 2014 à 19:35
Miura564 Messages postés 13404 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 2 février 2015 - 26 févr. 2014 à 16:11
Miura564 Messages postés 13404 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 2 février 2015 - 26 févr. 2014 à 16:11
A voir également:
- Mise en couleur caractère à partir d'un code hexadécimal
- Caractère ascii - Guide
- Mise en forme conditionnelle excel - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
4 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
7 févr. 2014 à 21:03
7 févr. 2014 à 21:03
Bonjour,
ça sera en vba :
https://www.cjoint.com/c/DBhvcefmYx9
Mais pas sûr qu'excel 2003 puisse retranscrire toute la palette, excel 2010 peut-être (à contrôler)
eric
ça sera en vba :
Sub couleurRVB() Dim lig As Long, derlig As Long Dim R As Long, V As Long, B As Long derlig = Cells(Rows.Count, 4).End(xlUp).Row For lig = 2 To derlig R = CLng("&h" & Cells(lig, 1)) V = CLng("&h" & Cells(lig, 2)) B = CLng("&h" & Cells(lig, 3)) Cells(lig, 4).Interior.Color = RGB(R, V, B) Next lig End Sub
https://www.cjoint.com/c/DBhvcefmYx9
Mais pas sûr qu'excel 2003 puisse retranscrire toute la palette, excel 2010 peut-être (à contrôler)
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
8 févr. 2014 à 00:49
8 févr. 2014 à 00:49
lorsque je modifie le code hexa, la modif ne se fait pas ?
Ben non. Pourquoi je l'aurais fait si tu ne le demandes pas ? Il faut lancer la macro.
De ce que j'ai compris, sinon met un exemple complet du résultat de ce que tu veux :
https://www.cjoint.com/?DBiaU3QOBAT
La macro patternCouleur() traite toutes les lignes.
Si tu modifies une donnée en A:D le pattern se met à jour par appel de patternCouleurLig(lig).
eric
Ben non. Pourquoi je l'aurais fait si tu ne le demandes pas ? Il faut lancer la macro.
De ce que j'ai compris, sinon met un exemple complet du résultat de ce que tu veux :
Sub patternCouleur() Dim lig As Long, derlig As Long derlig = Cells(Rows.Count, 4).End(xlUp).Row For lig = 2 To derlig patternCouleurLig (lig) Next lig End Sub Sub patternCouleurLig(lig As Long) Dim s As String Dim R As Long, V As Long, B As Long R = CLng("&h" & Cells(lig, 1)) V = CLng("&h" & Cells(lig, 2)) B = CLng("&h" & Cells(lig, 3)) s = String(8, Chr(CLng("&h" & Cells(lig, 4)))) Application.EnableEvents = False Cells(lig, 5) = String(8, Chr(CLng("&h" & Cells(lig, 4)))) Cells(lig, 5).Font.Color = RGB(R, V, B) Application.EnableEvents = True End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Row = 1 Or Target.Column > 4 Then Exit Sub patternCouleurLig (Target.Row) End Sub
https://www.cjoint.com/?DBiaU3QOBAT
La macro patternCouleur() traite toutes les lignes.
Si tu modifies une donnée en A:D le pattern se met à jour par appel de patternCouleurLig(lig).
eric
Miura564
Messages postés
13404
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 février 2015
1 506
8 févr. 2014 à 02:49
8 févr. 2014 à 02:49
Merci Eric pour ta réponse et ta patience...
visiblement je ne sais pas exprimer mon problème ou bien je ne sais pas utiliser les macros. Je n'ai pas encore réussi à utiliser cette deuxième version. D'ailleurs, comment je lance la macro ?
Voici un exemple de ce que j'aimerais obtenir :
> Essai de colorisation texte (Excel 2010)
Si je peux encore abuser, j'aimerais que la colorisation se fasse au fur et à mesure de la saisie si cela est possible et pas trop compliqué évidemment
visiblement je ne sais pas exprimer mon problème ou bien je ne sais pas utiliser les macros. Je n'ai pas encore réussi à utiliser cette deuxième version. D'ailleurs, comment je lance la macro ?
Voici un exemple de ce que j'aimerais obtenir :
> Essai de colorisation texte (Excel 2010)
Si je peux encore abuser, j'aimerais que la colorisation se fasse au fur et à mesure de la saisie si cela est possible et pas trop compliqué évidemment
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 8/02/2014 à 11:16
Modifié par eriiic le 8/02/2014 à 11:16
D'ailleurs, comment je lance la macro ?
Comme toutes les autres macros...
De plus je t'avais mis des boutons 'test xxx', il suffit de cliquer dessus.
Et, comme demandé, une saisie en A:D met à jour les couleurs.
Il ne faut pas être timide devant un fichier...
Macro adaptée à ton fichier :
https://www.cjoint.com/c/DBikMh1sBtj
Je te laisse ajouter les pattern. Chez moi le code ASCII DB est le caractère Û.
Ajout non demandé : tu peux également saisir en A, B:D se mettront à jour.
eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Comme toutes les autres macros...
De plus je t'avais mis des boutons 'test xxx', il suffit de cliquer dessus.
Et, comme demandé, une saisie en A:D met à jour les couleurs.
Il ne faut pas être timide devant un fichier...
Macro adaptée à ton fichier :
https://www.cjoint.com/c/DBikMh1sBtj
Je te laisse ajouter les pattern. Chez moi le code ASCII DB est le caractère Û.
Ajout non demandé : tu peux également saisir en A, B:D se mettront à jour.
eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Miura564
Messages postés
13404
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 février 2015
1 506
8 févr. 2014 à 11:26
8 févr. 2014 à 11:26
Merci Eric...
ben justement j'ai utilisé les boutons mais sur mon excel, rien ne se passe...
DB est le code hexadécimal, si tu saisi ALT+219 tu auras le bon caractère
Bizarrement Excel fait la différence entre REPT(car(219);8) et REPT("#";8) Le dièse symbolisant le caractère 219 invisible sur CCM
enfin ce n'est qu'un détail... c'est pas le plus important..
Ah derme !! je ne peux pas ouvrir ton dernier fichier....
ben justement j'ai utilisé les boutons mais sur mon excel, rien ne se passe...
DB est le code hexadécimal, si tu saisi ALT+219 tu auras le bon caractère
Bizarrement Excel fait la différence entre REPT(car(219);8) et REPT("#";8) Le dièse symbolisant le caractère 219 invisible sur CCM
enfin ce n'est qu'un détail... c'est pas le plus important..
Ah derme !! je ne peux pas ouvrir ton dernier fichier....
Miura564
Messages postés
13404
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 février 2015
1 506
8 févr. 2014 à 11:35
8 févr. 2014 à 11:35
j'ai enfin réussi à l'ouvrir mais j'obtiens un message "incompatibilité de type"... purée, j'en arrive à regretter Multiplan
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
8 févr. 2014 à 15:19
8 févr. 2014 à 15:19
DB est le code hexadécimal, si tu saisi ALT+219 tu auras le bon caractère
d'accord, mais en vba on ne fait pas alt+219...
Sur toute table ascii on trouve DB="Û", c'est ainsi que vba le transcrit.
Entre nous la différence est mineure entre ton choix et colorer la cellule.
Pour régler ce pb : mettre le pattern désiré en J2 (cellule nommée 'Pattern', tu peux la déplacer où tu veux, le nom suivra) et vba le récupèrera ici.
Nouvelle version qui n'a rien à voir avec ton pb.
Formatage des saisies en A:D.
Tu peux saisir en minuscule ça sera converti en majuscule, ajout des 0 manquants, et du # pour W3C. Ex :
- si tu saisis "f" en B:D (RVB), tu obtiens "0F"
- si tu saisis "fff" en A (W3C), tu obtiens "#000FFF"
j'obtiens un message "incompatibilité de type"
1) Il faut préciser suite à quelle manip.
2) Où est l'erreur ? Procédure, ligne, expression surlignée.
3) Sur quelle version d'excel ? Sur 2010 je n'ai aucune erreur.
Re-teste sur la nouvelle version qu'on soit en phase :
https://www.cjoint.com/?DBipoVN6U7Y
eric
d'accord, mais en vba on ne fait pas alt+219...
Sur toute table ascii on trouve DB="Û", c'est ainsi que vba le transcrit.
Entre nous la différence est mineure entre ton choix et colorer la cellule.
Pour régler ce pb : mettre le pattern désiré en J2 (cellule nommée 'Pattern', tu peux la déplacer où tu veux, le nom suivra) et vba le récupèrera ici.
Nouvelle version qui n'a rien à voir avec ton pb.
Formatage des saisies en A:D.
Tu peux saisir en minuscule ça sera converti en majuscule, ajout des 0 manquants, et du # pour W3C. Ex :
- si tu saisis "f" en B:D (RVB), tu obtiens "0F"
- si tu saisis "fff" en A (W3C), tu obtiens "#000FFF"
j'obtiens un message "incompatibilité de type"
1) Il faut préciser suite à quelle manip.
2) Où est l'erreur ? Procédure, ligne, expression surlignée.
3) Sur quelle version d'excel ? Sur 2010 je n'ai aucune erreur.
Re-teste sur la nouvelle version qu'on soit en phase :
https://www.cjoint.com/?DBipoVN6U7Y
eric
Miura564
Messages postés
13404
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 février 2015
1 506
8 févr. 2014 à 16:24
8 févr. 2014 à 16:24
pour la table de caractères j'avais déjà vérifié et effectivement j'obtiens aussi ce Û. Chose bizarre, lorsque je saisi manuellement mon ALT+219 et que je cherche le code du caractère avec la formule =code() il me renvoie le code 63 ce qui correspond à un ?... c'est tout de même surprenant ces différences ? Est-ce dû à un bug d'Excel ??
pour le message "incompatibilité de type" je l'obtiens dès le lancement de la macro, en mode pas-à-pas il ne dépasse pas l'en-tête et s'arrête à la déclaration de variables.. peut-être un problème de paramétrage de mon Excel ?
je vais le tester sur une autre machine, en Excel 2003 et je te dirais ce qu'il en est..
il va vraiment falloir que je me penche sérieusement sur le cas du VBA, très différent du BASIC et du COBOL... ;-) (oui bon je sais c'est plus trop d'actualité)
cet apm je suis sur Excel 2003, je testerai en 2010 ce soir...
pour le message "incompatibilité de type" je l'obtiens dès le lancement de la macro, en mode pas-à-pas il ne dépasse pas l'en-tête et s'arrête à la déclaration de variables.. peut-être un problème de paramétrage de mon Excel ?
je vais le tester sur une autre machine, en Excel 2003 et je te dirais ce qu'il en est..
il va vraiment falloir que je me penche sérieusement sur le cas du VBA, très différent du BASIC et du COBOL... ;-) (oui bon je sais c'est plus trop d'actualité)
cet apm je suis sur Excel 2003, je testerai en 2010 ce soir...
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
8 févr. 2014 à 17:26
8 févr. 2014 à 17:26
Pour avoir ton caractère en vba il faudrait en unicode :
[A1] = ChrW(9608)
Mais bon, le pb est réglé, tu peux même changer de pattern facilement sans toucher le code maintenant.
Je viens de tester sur 2003, pas de soucis non plus.
A part les couleurs qui n'ont rien à voir comme je m'en doutais.
eric
[A1] = ChrW(9608)
Mais bon, le pb est réglé, tu peux même changer de pattern facilement sans toucher le code maintenant.
Je viens de tester sur 2003, pas de soucis non plus.
A part les couleurs qui n'ont rien à voir comme je m'en doutais.
eric
7 févr. 2014 à 21:24
Modifié par Miura564 le 7/02/2014 à 21:33
je désirais mettre en couleur un texte ou mon pattern (########) de la couleur définie par le code hexa
DB (219) est le code Hexa (décimal) du caractère qui compose mon pattern. Une chaine composée de 8x le même caractère
EDIT : je vais être embetant jusqu'au bout (désolé) mais lorsque je modifie le code hexa, la modif ne se fait pas ?