Liste déroulante et mise en forme des cellules

Bonjour,

J'ai lu quelques sujets sur ce forum mais je n'ai pas trouvé la solution à mon problème.

Je suis en train de réaliser un planning sur Excel et j'ai crée une liste déroulante pour sélectionner le n° de l'affaire que l'on souhaite programmer afin d'éviter des erreurs de saisie.

Je voudrais que lorsque que je choisi l'affaire n°1 par exemple la cellule se colorie automatiquement en rouge, si je sélectionne l'affaire n°2 elle se colorie en bleu et ainsi de suite.

Ma question est donc est-il possible d'associer une couleur/mise en forme à chaque choix de la liste ?

La mise en forme conditionnelle est longue et fastidieuse puisque j'ai en moyenne 80 choix dans la liste déroulante et la base de données de celle-ci évolue au cours du temps.

Je joins un fichier exemple avec une liste déroulante, une base de données et les couleurs associées

Merci par avance pour votre aide

Bonjour Eléna et

Tu es certaine que fusionner les cellules en A1:C1 est indispensable ?

Tu n'auras de liste déroulante qu'à cet endroit ... ou il y en aura plusieurs les unes en-dessous (ou à côté) des autres ?

Merci pour ta réponse

Les cellules seront fusionnées en fonction de la durée de la tâche (1case = 1 jour)

Les listes déroulantes seront les unes en dessous des autres et côte à côte

J'espère être assez claire

Re-bonjour,

J'espère être assez claire

Disons que je crois comprendre ... il aurait mieux valu fournir un exemple qui reflète la réalité

Mais comment détermine-t-on la hauteur et la largeur de la plage à colorer, par exemple ?

Si tu dis qu'une MFC va te prendre trop de temps (ce que je peux comprendre ) ... il ne reste guère qu'une solution par macro. Mais pour l'envisager avec un minimum de chances de succès, il faut que tu fournisses bien plus d'informations que ce que tu as fait jusqu'à présent Le mieux serait un fichier avec la structure de ton planning

Merci beaucoup, malheureusement je ne m'y connais pas beaucoup en macro, je joins un fichier avec plus de structure.

Allons-y pour un premier essai ...

Dans ton fichier joint (devenu un fichier avec une extension .xlsm):

  • Il faut activer les macros à l'ouverture
  • Une plage nommée "PlagePlanning" définie par le nombre de noms renseignés en colonne B et le nombre de jours en ligne 4
  • Une autre plage nommée "ListeAffaires" utilisée comme source de la validation de données (voir Gestionnaire de noms pour ces deux plages)
  • Ne pas laisser de lignes vides entre les noms, ni d'autres valeurs que ces noms dans la plage B5:B105
  • Pour supprimer une "réservation", simplement appuyer sur la touche "Delete" (la couleur de remplissage est supprimée, les cellules dé-fusionnées et les bordures automatiques ré-appliquées ... ainsi que la validation, sur ces cellules dé-fusionnées)

J'ai fait quelques tests de mon côté, ça semble fonctionner. Je te laisse poursuivre ...

PS: je n'ai pas pris en considération le fait que tu pouvais planifier des choses "à cheval" sur des w-e !

Merci beaucoup pour ton aide !

Je vais regarder tout ça de plus près

Bonne soirée !

Bonjour U. Milité,

J'ai testé ta méthode sur mon fichier et j'ai un petit problème, j'ai oublié de préciser que ma liste d'affaire était liée à un autre fichier.

Je m'explique : La liste des affaires est dans un autre classeur Excel, elle est mise à jour en cas de nouvelles affaires ou d'affaires terminées et ma liste d'affaire (dans mon planning) prend les infos de ce premier fichier Excel pour se mettre à jour automatiquement. Donc le contenu de la cellule (dans liste des affaires dans le planning) est sous la forme ='1- Avancement Affaire 2020.xlsx'!Tableau1[@AFFAIRES]&" "&'1- Avancement Affaire 2020.xlsx'!Tableau1[@CLIENTS]&" "&'1- Avancement Affaire 2020.xlsx'!Tableau1[@COMMENTAIRES]

De ce fait lorsque que je sélectionne une affaire le message d'erreur "Affaire non trouvée" apparaît.

Y'a t-il une solution pour résoudre ce problème ?

Merci de votre aide

Bonjour Eléna,

Donc le contenu de la cellule (dans liste des affaires dans le planning) est sous la forme ='1- Avancement Affaire 2020.xlsx'!Tableau1[@AFFAIRES]&" "&'1- Avancement Affaire 2020.xlsx'!Tableau1[@CLIENTS]&" "&'1- Avancement Affaire 2020.xlsx'!Tableau1[@COMMENTAIRES]

Mais le texte résultant de cette formule et qui s'affiche dans la cellule correspond bien au contenu des Listes de Validation ? C'est la plage de liste des affaires qui sert de source à la validation ?

Est-ce que, dans ton fichier, tu as nommé une plage "ListeAffaires", comme je l'avais fait dans ma proposition ?

Comme tu le vois il y a un certain nombre d'hypothèses envisageables ...

Peut-être aussi faut-il réinitialiser les paramètres du Rechercher-Remplacer ? Si je te donne une ligne à modifier dans le code, tu vois comment faire ?

C'est la plage de liste des affaires qui sert de source à la validation, Le texte résultant de cette formule est celui qui doit être affiché dans le menu déroulant (cela fonctionne) mais lorsque que je sélectionne une affaire le message d'erreur apparaît.

En revanche si je tape le n°d'affaire à la main dans la plage de liste des affaire (sans la formule) le programme fonctionne.

Et oui, j'ai bien nommé une plage "ListeAffaires" dans mon fichier.

A quoi correspond le paramètre Rechercher-Remplacer ?

Je pense pouvoir essayer de changer un ligne de code

Merci pour ton aide précieuse

A quoi correspond le paramètre Rechercher-Remplacer ?

Dans Excel, si tu appuies sur Ctrl+f, tu affiches la boîte de dialogue "Rechercher". Dans cette dernière, un bouton Options permet d'afficher des paramètres supplémentaires: rechercher dans les formules ou les valeurs, respecter la casse, etc.

En remplaçant la ligne de code qui commence de la même manière que ci-dessous:

Set trouveAff = Sheets("Base de données").[A1:A100].Find(what:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)

... on force la recherche dans les valeurs, plutôt que les formules et on prie gentiment Excel de ne pas tenir compte de la casse.

Au passage, tu peux aussi supprimer le "Module1", qui ne sert à rien (sans l'exporter)

Après modification, pense à enregistrer (voire même fermer, puis rouvrir) le fichier ... et dis-nous si c'est mieux

J'ai changé la ligne de code et cela fonctionne !

Merci beaucoup pour ton aide je n'y serai jamais arrivée toute seule !!

J'ai changé la ligne de code et cela fonctionne !

Allez, tant mieux ... bon amusement !

Rechercher des sujets similaires à "liste deroulante mise forme"