code liste déroulante

cyrilV

XLDnaute Junior
Bonsoir,

Est définie dans le fichier joint dans une feuille une plage de référence pour la liste déroulante L11, avec sa plage en (M1:M6), ainsi que dans l'onglet feuil1/ visualiser le code- la formule relative pour me mettre la premiere lettre du mot sélectionné dans la liste juste d'un coup de clic.
ceci est insuffisant par rapport à ce que je recherche, pourriez vous m'aider:
- lorsque la case est blanche en fond, je veux qu'il n'indique que la première lettre du mot, sans modifier la couleur du fond (qu'on soit sur une case blanche, ou bien sur une case grise).
En revanche, lorsque le mot sélectionné de la liste est sous un fond coloré, je souhaiterai qu'il indique la premiere lettre du mot + la couleur de référence de ce mot
Ensuite, lorsque la case na aucun mot, mais juste référence à une couleur, qu'il me mette juste la couleur lorsque je clique dans mon planning.

J'espère avoir été assez clair.

Merci d'avance

Cyril
 

Pièces jointes

  • macro liste deroulante 2.xls
    27 KB · Affichages: 172

jeanpierre

Nous a quitté
Repose en paix
Re : code liste déroulante

Bonsoir Cyril,

Le serpent qui se mord la queue là....

Tu parles de case blanche et première lettre sans modifier qu'elle soit grise ou blanche.... Comprends pas tout moi.
Ensuite, et en couleur, tu veux la première lettre plus la couleur.... et s'il n'y a rien la couleur aussi....

Dans ton fichier, je n'ai vu qu'une colonne sur deux en blanc, l'autre en gris.....

Je n'ai pourtant pas encore fait la fête......

Peux-tu expliquer d'avantage...... un peu brouillard..... pour moi, en tous cas.

Jean-Pierre
 

cyrilV

XLDnaute Junior
Re : code liste déroulante

Bonsoir,

Et merci Wilfried, c'est exactement ce que je recherchais.
J'ai 2 petites questions en revanche, car en visualisant le code, j'ai un peu de mal à tout comprendre la fonction change, et notamment sans dout la plage sélectionnée "le "M65536". Comment je peux faire et je dois agir pour agrandir ma plage de référence, car j'ai besoin de rajouter plusieurs colonnes et couleurs, et je ne sais où aller.
une 2ème petite question: est ce possible de visualiser la couleur dans la liste déroulante, car en effet là on voit une case vide, il faut cliquer dessus pour qu'on voit la couleur sélectionnée, mais si j'ai une dizaine de couleur, je suis embêté.

en tout cas sinon merci pour avoir décrypter ce que je souhaitais et surtout pour avoir été si rapide

Cyril
 

wilfried_42

XLDnaute Barbatruc
Re : code liste déroulante

re:

1ere reponses, Rien ne t'oblige de mettre la liste des couleurs beaucoup plus loin
Changer dans le code M1 et M65636 par la nouvelle Colonne
les interruptions :
Selection_change ---> à chaque changement de cellule
Change ----> à chaque modification de cellule

2eme reponses ---> dans une liste deroulante
c'est possible (mais je suis le seul à le dire :eek:), je precise ma reponse, comme tu n'as besoin dans ton tableau que de la premiere lettre, il te suffif d'inscrire en claire la couleur :eek:

oui je sais, mais en ces periodes de fete il ne faut pas trop m'en demander sinon, dans l'etat de mes connaissances actuelle, je ne pense pas qu'il soit possible de faire une liste deroulante avec differentes couleur

Par contre : tu as une autre solution qui devrait te plaire, fais une recherche avec mot Clef : menus POPUP, un fil existe avec un choix de couleur à partit d'un menu contextuel
 

cyrilV

XLDnaute Junior
Re : code liste déroulante

Bonjour,

Je vois que tu es très matinal Wilfried

Pour la 2ème réponse, pas de soucis, je ne peux pas faire ce que tu proposes car je commence en amont parfois par colorer ma cellule en amont, puis je dois y inscrire un texte comme G, N etc... mais je peux largement contourner ce problème, c'était au cas où il existe quelquechose de très simple....

Sinon, désolé de mon côté novice, mais pour la 1ère réponse, je nage à contre courant très violent. Y a t il un cheminement pour accéder au code et modifier la plage de cellules en les sélectionnant, car on étant juste sur "visualiser le code" je n'arrive pas à déchiffrer la fonction change qui me parait être très complexe.
Pour être concret dans le fichier que je devrais réalisé, la liste déroulante devra faire appel à la plage de cellule situé dans un onglet nommé "paramètres" et dans les cellules allant de B 110 à B 130

Merci encore

Bonne journée

Cyril
 

cyrilV

XLDnaute Junior
Re : code liste déroulante

Re,

En fait en regardant d'avantage et en faisant des essais, je me rends compte que seul la premiere couleur mise dans la plage de référence est prise en compte, et pas celle du dessous. Il doit y avoir une petite modif à faire dans le code, mais alors où et comment?

Merci cyril
 

wilfried_42

XLDnaute Barbatruc
Re : code liste déroulante

re:

ton fichier en retour avec des explications
j'ai créé une feuille Parametres avec tes couleurs

J'ai modifié les macros en fonction

et j'ai expliqué la macro d'interruption Change
 

Pièces jointes

  • Coloriage.zip
    10.2 KB · Affichages: 55
  • Coloriage.zip
    10.2 KB · Affichages: 58
  • Coloriage.zip
    10.2 KB · Affichages: 58

cyrilV

XLDnaute Junior
Re : code liste déroulante

Re,

Mon post du dessus est un peu faux. En fait c'est la couleur de la cellule qui est en M5 qui fait foi pour toutes les cellules vide de texte.

La solution détournée pourrait consister pour moi pour les couleurs (comme je n'en ai que 3), à mettre 3 listes (1 liste par couleur). 1 en L11 par exemple, l'autre en K11 et la dernière en M11. en revanche comment peut on faire pour superposer plusieurs codes (je sais faire plusieurs macros mais pas plusieurs codes)

Merci

Cyril
 

cyrilV

XLDnaute Junior
Re : code liste déroulante

re, et merci une fois de plus pour ces explications qui me permettent de comprendre d'avantage et notamment par rapport à la plage sélectionnée.

En plus tu t'es vraiment émbêté à me mettre la fonction DECALER, j'aurais pu sélectionner toute ma plage de tableau de référence, car ça n'évoluera plus une fois que j'y aurais mis toutes celle que je voulais.

Un problème persiste cependant: les cellules vides, ne contenant pas de texte mais de la couleur, je devrais en avoir 3 ou 4. quand je les mets sur ma plage de référence, et bien seul la premiere couleur seule rencontrée est sélectionnée.

Peut etre une solution de remplacement en mettant le texte (donc la premiere lettre) dans la même couleur que la couleur de fond, mais comment faire pour inscrire dans le code la couleur sélectionnée

Merci Wilfried

Cyril
 

wilfried_42

XLDnaute Barbatruc
Re : code liste déroulante

re:


comme tu ne prends que le premier caractere, mets une apostrophe et un texte deriere, l'apostrophe, meme si elle existe, à une caracteristique qui la rend invisible

et en meme temps, cela regleglera le probleme des cellules vides avec la fonction decaler

Pour ta premiere question, une petite idée, Mets des codes doubles, recupere uniquement les caractere en majuscule

dim a as string
a = "" ' remise à zero de a
for i = 1 to len(range("L11")) ' controle tous les caracteres de la cellule L11
' si majuscule du caractere = caractere alors ok je garde et j'ajoute
if ucase(mid(range("L11"),i,1))=mid(range("L11"),i,1) then a = a & mid(range("L11"),i,1)
next i ' prochain caractere
' si le premier caractere est une apostrophe, je met une apstrophe dans a
if left(range("L11"),1)="'" then a = "'"

à la fin, a contient le valeur à tranferer dans target, il ne reste plus qu'à y placer la couleur si la couleur de L11 <> xlnone
 
Dernière édition:

cyrilV

XLDnaute Junior
Re : code liste déroulante

Bonsoir Wilfried,

Merci une fois de plus. Là ça devient vraiment complexe pour un petit amateru comme moi. tu me sors une bonne épine du pied.

Au plaisir d'un autre conseil à l'occasion, j'aurais sûrement encore besoin d'aide un jour.

Bonnes fêtes de fin d'année à toi et tes proches.

Cyril
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 987
dernier inscrit
Doctami