Sauvegarder une gamme de couleurs personnalisées
Bonjour cher Forum,
Je dois réutiliser régulièrement des couleurs précises (définies par leur code Hex) pour remplir des cellules en fonction de la valeur d'un indice que je recalcule tous les mois. Ces couleurs sont les suivantes :
| #00408b |
| #3071b0 |
| #60a3d6 |
| #ffde1a |
| #f8930f |
| #f05200 |
| #c50e0e |
| #d9d9d9 |
Après, je peux par une mise en forme conditionnelle répondre à mon problème.
Mon souci, c'est que je parviens pas à sauvegarder ces couleurs pour qu'elles soient accessibles dans une nouvelle session d'Excel.
J'ai trouvé dans le forum des échanges qu'il fallait passer par du code VB, mais mon niveau en programmation étant nul, je n'ai rien compris. N'y a-t-il pas une solution plus simple pour un béotien comme moi ?
Merci d'avance de vos réponses.
Bonjour,
Chez moi cela ne pose pas de problème :
1 aller dans MEFC
2 choisir la deuxième option cellule =
3 dans Format choisir Remplissage - Autres couleurs - Personnalisées : remplir la dernière ligne Hex avec le code désiré
Faire OK 3 fois
Sauver le classeur
Et la MEFC sera opérationnelle pour les sessions futures
Voir exemple en annexe
Bonne continuation
Chris
Merci CHRIS1945 de ta réponse, mais ce n'est pas exactement ce que je cherche :
je voudrais pouvoir garder la gamme de couleurs créées indépendamment du classeur dans lequel elle a été créée. C'est vrai que si je rouvre le dernier classeur avec cette gamme de couleur, je peux faire un copier-coller du format, mais je voulais ne pas avoir besoin de rouvrir d'anciens classeurs et que dans les gammes de couleurs disponibles je retrouve celle que j'ai créée (comme je le fais dans des logiciels de SIG type QGIS).
Marc
Bonsoir,
Désolé mais je ne comprend rien à ton dernier message.
Tu as clairement indiqué dans ton premier message les couleurs que tu désirais et je les ai introduit dans le classeur test et cela fonctionne
Alors je ne vois pas ce que je peux faire de plus ou alors expliques plus en détail ce que tu désires.
A bientôt
Chris
Bonjour,
Comme @Chris j'ai du mal à vous suivre. Cependant ci-joint une autre approche via VBA :
Les codes couleurs insérés dans les cellules de la feuille seront automatiquement colorés de la couleur correspondante (cellule).
Par défaut la police est également mise à jour pour rester lisible.
Code de coloriage dans Module1 et code d'appel du coloriage dans code de cette feuille (Sheet1)
Sub de coloriage :
Option Explicit
Public Sub SetColorFromHex(rng As Range, Optional ByVal updateFontColor As Boolean = True)
Application.ScreenUpdating = False
If rng.CountLarge > 1 Then Exit Sub
' Get the hex color code from the target cell's value
Dim hexColor As String
hexColor = rng.Value
' Check if the hex color code starts with #
If Left(hexColor, 1) = "#" Then
hexColor = Mid(hexColor, 2) ' Remove the #
End If
' Extract the red, green, and blue components
Dim red As Long, green As Long, blue As Long
red = WorksheetFunction.Hex2Dec(Left(hexColor, 2))
green = WorksheetFunction.Hex2Dec(Mid(hexColor, 3, 2))
blue = WorksheetFunction.Hex2Dec(Right(hexColor, 2))
' Set the cell's background color
rng.Interior.Color = RGB(red, green, blue)
' set the cell's font color
If updateFontColor Then
Dim lumin As Double
lumin = 0.2126 * red + 0.7152 * green + 0.0722 * blue
If lumin > 128 Then
' bright color => black font
rng.Font.ColorIndex = 1
Else
' dark color => white font
rng.Font.ColorIndex = 2
End If
End If
Application.ScreenUpdating = True
End SubAppel dans le code de la feuille :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target.Cells
If Left(c, 1) = "#" Then SetColorFromHex c
Next c
End Sub
Merci à vous deux de vous être penchés sur mon petit problème.
En particulier, merci à toi Saboh12617 pour le code et la feuille de calcul qui me rendra service ! pour préciser ma demande initiale -- manifestement je n'ai pas été clair et je m'en excuse - mon idée était de disposer au démarrage d'Excel et quelle que soit la feuille ouverte (yc celle par défaut) comme ce qui apparaît (mais pour la seule session en cours) quand j'ai créé ces couleurs :
en fait de "pérenniser" les couleurs utilisées récemment pour ne pas avoir à en ressaisir les codes Hex quand je fais une mise en forme conditionnelle au cours d'une autre session par exemple. Maintenant, c'est peut-être pas possible... Bonne journée.
Marc
Ah mais alors il y a beaucoup plus simple : vous pouvez faire un thème !
Allez dans mise en page > Thèmes > Couleurs > Personnaliser
Vous pouvez ensuite les choisir, sachant que les correspondances sont les suivantes :
Maintenant faites Thème > Sauvegarder le thème actuel (Sauvegardez le là où vous voulez).
Et maintenant dans vos nouveaux classeurs il suffit de faire la manip inverse : Thème > Parcourir… (le bouton du dessus sur le dernier screen) et vous allez pouvoir charger votre jeu de couleurs.
Bon vous le voyez, la limite c'est qu'il n'y a que 13 couleurs par thème. Mais c'est une solution simple, fiable et pratique sans VBA.
et ben voilà, comme l'écrivent certains : "Une question bien formulée est une question à moitié résolue."
Je n'avais pas trouvé la manip !
Merci bcp ! je réutiliserai cependant le code pour l'adapter à d'autres petits trucs.
et ben voilà, comme l'écrivent certains : "Une question bien formulée est une question à moitié résolue."
Ahah oui, c'est souvent vrai.
Notez quand même que ces couleurs de thème peuvent avoir une influence sur votre mise en page au niveau des graphiques/tableaux/titres. C'est leur première utilité à vrai dire. Mais cela est adaptable bien entendu, vous pouvez modifier le thème d'un graphique sans changer celui du classeur par exemple.
Je vous l'indique au cas où vous seriez surpris et pensez avoir fait une mauvaise manip. Remettre le thème par défaut "corrige" cela.
Bonne fin de journée