[VBA] garder la couleur d'une cellule pour une liste

Signaler
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Salut à tous,
J'ai un projet à faire pour l'IUT et j'ai besoin de votre aide pour une petite partie.

J'ai une liste où il y'as des noms de médecins et pour chaque médecins la cellule est en couleur.
Sur une autre feuille j'ai fait une macro pour que quand on double click sur une cellule, on choisisse le médecin parmi ceux de la liste puis un patient (mais il n'est pas important).
Donc apres avoir sélectionné le médecin et un patient on valide puis la cellule se remplit du nom de médecin et du patient mais les couleurs assignées dans la liste de médecin ne sont pas gardées.
Je n'arrive donc pas à trouver le moyen de garder cette couleur et de la copier en même temps dans la cellule choisie.
J'ai cherché sur les nombreux forum mais ma recherche n'a pas eu de succes.

Merci de votre aide.

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Bonjour,
Donc : méthode copy avec argument destination (voir ton aide VB6 sur Range.Copy)
Bien sur : d'abord trouver à partir de la liste (méthode Find, pour ce faire).
Reviens avec ton code d'essai sur ces bases. Nous t'aiderons, au vu de ce code, si encore en difficulté.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu je te remercie de me répondre si rapidement,
mais dans mon programme, je vais chercher la liste avec "RowSource" donc je ne copie pas directement la cellule mais son contenu.
Peut etre que dans les propriétés du controle il y'as un moyen de prendre la mise en forme de cellule ?
Ta solution est -elle efficace pour mon problème vu comme ça ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Ta solution est -elle efficace pour mon problème vu comme ça ?

Le réponse est :
oui.
Il y en aurait peut-être une plus facile encore, mais je n'en parlerai que lorsque tu auras précisé la totalité du contexte, à savoir :
- quel est le type de contrôle utilisé pour ta liste (activex ou autre)
- où est placé ce contrôle (userform ou feuille de calcul)
Or, tu n'as jusqu'à présent absolument rien précisé de ces choses essentielles !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Désolé de pas avoir précisé tout ça
Non le contrôle utilisé est utilisé donc dans un formulaire et je ne crois pas qu'il soit ActiveX, c'est une zone de liste modifiable.
J'ai essayé avec la fonction Find mais elle ne fonctionne pas..
ActiveCell.Interior.Color = Worksheets("medecins").Range("A3:A6").VBA.Find(ActiveCell.Value, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, MatchCase:=True).Interior.Color

Voila merci de ton aide,
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Commence, veux-tu bien, par décomposer :
1) extraction dans une variable toto de la valeur sélectionnée (toto = ...)
en précisant (tu ne l'as pas fait !) dans quelle procédure événementielle tu lances ce code.

PS : si tu commences à dire des choses comme :
J'ai essayé avec la fonction Find

Je vais être tenté de te laisser tout net là ! Il ne s'agit pas d'une "fonction" !!!!

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Je note également que tu n'as que 4 médecins dans ta liste de choix !
Dans ces conditions, même un simple select case ferait l'affaire, pour si peu !
Même pas besoin de la méthode Find !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ