Menu

Créer une liste déroulante avec des couleurs [Résolu/Fermé]

- - Dernière réponse : Mike-31
Messages postés
16849
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
11 février 2019
- 14 janv. 2013 à 16:12
Bonjour,

J'ai un problème je n'arrive pas à insérer dans un tableau excel une liste déroulante en couleur. Par exemple, je souhaite qu'une action prioritaire apparaisse en rouge foncé, une action moyennement prioritaire apparaisse en orange, une action non prioritaire apparaisse en vert.

Est -ce quelqu'un peut m'aider ?

Merci d'avance.




Afficher la suite 

8 réponses

Meilleure réponse
approuvée par Jean-François Pillou le 25 janv. 2019
Messages postés
16849
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
11 février 2019
5034
1
Merci
Re,

Tu commences par définir la plage de tes couleurs, dans mon exemple elle se trouve dans l'onglet nommé Couleurs et commence à la cellule I8
j'ai créé un champ dynamique (Nom définir/Définir un nom)
nom du champ couleurs et la formule du champ est
=DECALER(Couleurs!$I$8;;;NBVAL(Couleurs!$I:$I))


pour t'aider à comprendre, si les cellules de couleurs étaient sur la feuille nommée Feuil2, le champ pourrait être nommé Teinte et se trouver dans la colonne B à partir de B2 dans ce cas la formule du champ serait
=DECALER(Feuil2!$B$2;;;NBVAL(Feuil2!$B:$B))


Si la mise en forme conditionnelle concerne la feuille nommée Feuil1 comme dans l'exemple, clic droit sur l'onglet de cette feuille/Visualiser le code tu verras ce code qui limite l'action pour cette feuille à la cellule B2 et ces parties de codes [Couleurs] font référence au champ nommé si ce champ avait été nommé Teinte, j'aurais [Teinte]

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect([B2], Target) Is Nothing Then
   On Error Resume Next
   Target.Interior.ColorIndex = [Couleurs].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
   Target.Font.ColorIndex = [Couleurs].Find(Target, LookAt:=xlWhole).Font.ColorIndex
   Target.Font.Bold = [Couleurs].Find(Target, LookAt:=xlWhole).Font.Bold 'Inclus le gras
  End If
End Sub


A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57854 internautes nous ont dit merci ce mois-ci

Bonsoir,

Merci Mike mais je n'y arrive pas je suis parti dans une feuille nommée sources avec 5 cellules différentes de cinq couleurs différente j'ai appliqué dans la cellule G5 de la feuille sources la formule décalée
=DECALER(sources!$D$1;;;NBVAL(sources!$D:$D))
.

Ensuite j'ai mis le code dans ma feuille presses Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([G7], Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex = [sources].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
Target.Font.ColorIndex = [sources].Find(Target, LookAt:=xlWhole).Font.ColorIndex
Target.Font.Bold = [sources].Find(Target, LookAt:=xlWhole).Font.Bold 'Inclus le gras
End If
End Sub

Car j'aimerai que dans la cellule G7 de la feuille presse ma liste déroulante apparaisse.

Merci de me dire où est l'erreur , je suis désespérée !

Bonne soirée.
Mike-31
Messages postés
16849
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
11 février 2019
5034 -
Re,
Tu as décidé de mettre tes couleurs feuille sources colonne G à partir de la cellule G5 PAS DE PROBLEME

Ensuite il faut nommer un champ Gestionnaire de noms/Définir un nom
pour changer ce coup ci je le nomme COUL et la formule du champ est

=DECALER(sources!$G$5;;;NBVAL(sources!$G:$G))


sur la feuille presses en G7 j'ai créé une liste de validation (Données/Validation des données
dans Autoriser, sélectionner Liste
et la formule est =COUL
dans le code [sources] ce n'est pas le nom de la feuille mais du champ [Coul].


dans les propriétés de la feuille presses clic droit sur l'onglet de cette feuille/Visualiser le code

le code est

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([G7], Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex = [Coul].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
Target.Font.ColorIndex = [Coul].Find(Target, LookAt:=xlWhole).Font.ColorIndex
Target.Font.Bold = [Coul].Find(Target, LookAt:=xlWhole).Font.Bold 'Inclus le gras
End If
End Sub

dans le code, ces deux lignes concernent la mise en forme de la police (couleur et gras), si ta mise en forme conditionnelle concerne que la couleur de fond de cellule tu peux les supprimer

Target.Font.ColorIndex = [Coul].Find(Target, LookAt:=xlWhole).Font.ColorIndex
Target.Font.Bold = [Coul].Find(Target, LookAt:=xlWhole).Font.Bold 'Inclus le gras

http://cjoint.com/?BCew3h3OgAZ
Messages postés
2950
Date d'inscription
vendredi 1 mai 2009
Dernière intervention
19 mars 2016
1610
-1
Merci
Bonsoir,

petit exemple

http://cjoint.com/?BBBtD739SY4

il s'agit de faire une mise en forme conditionnelle sur une cellule (ici, qui contient du texte, mais on peut le faire avec des valeurs numériques).

A+

pépé
Merci , Pépé pour votre réponse et pour le fichier.Je ne peux pas passer par les mises en forme conditionnelles elles sont limitées à 3 dans excel 2003 et j'en ai besoin de 5. En consultant les forums je sais qu'il faut passer par une macro mais je ne sais pas comment faire :( .
Messages postés
14068
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
17 février 2019
1301
-1
Merci
Bonjour,
Vous creez une liste deroulante avec vos criteres action. Ensuite vous faite une Mise en Forme Coditionnelle en fonction de la valeur de la cellule d'apres le choix de votre liste deroulante.

Bonne suite
Messages postés
16849
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
11 février 2019
5034
-1
Merci
Salut,

A part que tu souhaites créer une liste déroulante en couleur mais dans ce cas il faudra passer par le VBA si tu as quelques notions
-1
Merci
Bonsoir,
merci pour vos réponses, j'ai tenté les mises en formes conditionnelles mais je suis limitée à 3 sur excel 2003 pour résoudre mon problème (créer une liste déroulante en couleur avec 5 critères) j'ai lu sur des forums qu'il faut passer par une macro et je ne sais pas comment faire. Est -ce quelqu'un peut m'aider? merci.
Messages postés
16849
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
11 février 2019
5034
-1
Merci
Re,

Dans ta liste déroulante que veux tu afficher, un texte et en fonction de ce texte la cellule se colorise

ou veux tu que ta liste déroulante affiche directement 5 couleurs
Re,

5 textes différents dans la même liste déroulante et la cellule se colorise selon le texte que l'on choisit (ex : très forte en rouge foncé, forte en rouge un peu plus clair, moyenne en orange, faible en jaune et très faible en vert clair).
Messages postés
16849
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
11 février 2019
5034
-1
Merci
Re,

Regarde si c'est ce que tu cherches

http://cjoint.com/?BBDwqx5jv45
Bonjour j'ai un problèmes du même type, sauf qu'il me faudrait oui en vert, non en rouge, et a modifier en orange; mais n'étant pas très doué, je n'ai pas très bien compris le procéder a suivre pour le faire dans mon tableau excel
Mike-31
Messages postés
16849
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
11 février 2019
5034 -
Salut,

Il aurait été plus judicieux d'ouvrir ta propre discussion, mais bon dans ton cas il suffit d'aller sur la feuille Couleurs de mon fichier et de saisir en I8 Non à la place de Très forte et I9 Oui et coloriser la cellule en vert, en I10 saisir A modifier et coloriser la cellule en orange effacer les données et couleurs des cellules au dessous
A+
Mike-31
-1
Merci
Bonsoir,

C'est exactement ce que je recherche, merci pour le fichier. Mais je n'arrive pas à retransposer cela dans mon tableau.
Je ne comprends pas comment fonctionne la fonction décaler.