colorer des cellules avec le rvb de leur contenu

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

flocon

XLDnaute Nouveau
bonjour

Je découvre depuis peu une version récente d'excel à laquelle je ne suis pas habituée.

Je voudrais savoir s'il pourrait exister un moyen de colorer des cellules d'un fichier excel grâce à une partie du texte (code RVB) contenu dans les cellules.

Pour être plus claire j'aurais par exemple une cellule avec "rvb(255,0,255) magenta" par exemple et je voudrais que la cellule prenne précisément cette couleur.
Si une autre cellule a le texte "rvb(255,255,255) noir" il faudrait qu'elle se mette en noir
et ainsi de suite.

C'est pour faire un petit exposé sur les couleurs mais il est assez fastidieux de colorer les cellules une à une.

Merci
 
Bonjour le forum

Un exemple avec une macro VBA
VB:
Sub Macro1()
Dim C As Range
Dim R As Integer, G As Integer, B As Integer
Set C = Range("A1")
C.NumberFormat = "@"
C.Value = "255,0,255"
R = 1 * Split(C.Text, ",")(0)
G = 1 * Split(C.Text, ",")(1)
B = 1 * Split(C.Text, ",")(2)
C.Interior.Color = VBA.RGB(R, G, B)
End Sub
 
Bonjour flocon, Pierre, Yurperqod,

Pour récupérer des nombres entiers dans un texte c'est facile avec les expressions régulières :
Code:
Sub couleur()
Dim o As Object, c As Range, a As Object
Set o = CreateObject("vbscript.regexp")
o.Global = True
o.Pattern = "\d+"
For Each c In Selection
  Set a = o.Execute(c)
  If a.Count = 3 Then c.Interior.Color = RGB(a(0), a(1), a(2))
Next
End Sub
A+
 

Pièces jointes

Re,

Si l'on veut en plus gérer la couleur de police (blanc ou noir) pour que le texte soit lisible :
Code:
Sub couleur()
Dim o As Object, c As Range, a As Object
Set o = CreateObject("vbscript.regexp")
o.Global = True
o.Pattern = "\d+"
For Each c In Selection
  Set a = o.Execute(c)
  If a.Count = 3 Then
    c.Interior.Color = RGB(a(0), a(1), a(2))
    c.Font.Color = IIf(Int(c.Interior.Color / 256) Mod 256 > 128, vbBlack, vbWhite)
  End If
Next
End Sub
Code:
c.Font.Color = IIf(Int(c.Interior.Color / 256) Mod 256 > 128, vbBlack, vbWhite)
je l'ai trouvé sur un post de Modeste geedee.

Fichier (2).

A+
 

Pièces jointes

Bonsour®
bonjour
C'est pour faire un petit exposé sur les couleurs mais il est assez fastidieux de colorer les cellules une à une.
Merci
pour une démonstration et ... pour le fun :
upload_2016-12-16_22-58-37.png
 

Pièces jointes

Houaaaa que de réponses ! C'est merveilleux 🙂
J'ai commencé à explorer et je suis admirative.
Je ne comprends pas tout, je vais prendre le temps d'essayer de comprendre tout ce qui m'est obscur.
Et excellente idée pour la gestion de la couleur du texte (c'est vrai que noir que noir...) je n'avais pas pensé à cet écueil sur les couleurs sombres.

Merci beaucoup
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
11
Affichages
1 K
Retour