Changement de couleur de cellule en fonction du nom

Bonjour, j'aimerais connaître la manière de faire, pour créer une macro qui me change la couleur d'une cellule en fonction du nom qui est dans cette cellule :

Il me faudra 6 couleurs comme pour l'onglet 16

NICE EST

NICE NORD

NiCE OUEST

Congés

Repos

ABSENT

Car lorsque je vais sur l'onglet 17, je suis obligé de répéter à chaque fois la mise en forme manuellement, et je fais cette opération tous les jours.

Est-ce qu'il n'y aurait pas une macro ou une formule pour reproduire cette mise en forme.

Encore merci de votre aide

125essai-pointage.zip (24.09 Ko)

Bonjour,

Tu peux obtenir le même résultat avec une Mise en Forme Conditionnelle:

[... Proposition supprimée ...]

En lisant le message de ThauThème, je m'aperçois qu'il y avait déjà des MFC (+/- 80 pour une cinquantaine de cellules)

... J'attendrai des explications complémentaires sur l'objectif poursuivi

Bonjour le fil, bonjour le forum,

Une manière relativement simple et rapide :

1 Place ton curseur sur n'importe quelle cellule de l'onglet 16 qui contient les mises en forme conditionnelles (B6 par exemple).

2 [Ctrl]+[C] pour copier

3 dans le ruban Accueil, clique sur l'icône pinceau (= Reporduire la mise en forme)

4 dans l'onglet 17 sélectionne la plage B6:L58

Recommence les point 1 à 3 puis, sélectionne dans l'onglet 17 la plage L6:L58...

Oui ça marche, merci beaucoup

Mais ça marche pour ce cas, normalement dans la colonne B, il n'y a aucunes mises en forme, mais du texte brut sans couleur et idem pour la colonne L

N'existerait-il pas une macro permettant de colorier la cellule en fonction du nom à l'intérieur de la cellule.

en effet copier/coller la mise en forme c'est le top voir le doc en PJ

88essai-pointage.zip (22.90 Ko)

Désolé Juile, mais je ne vois rien de changé, j'ai essayé de rajouter un onglet "18" et de remplir les différents champs et aucunes couleurs n'apparaissent

Merci de ton aide

En effet j'ai juste appliqué sur la forme conditionnelle et non en macro

Ok, mais franchement je préfèrais une macro

Encore merci

Snowkite a écrit :

Ok, mais franchement je préfèrais une macro

Et si tu expliquais concrètement ce que tu veux obtenir comme résultat (où et dans quel cas)

Dis-nous aussi comment tu "crées" tes feuilles supplémentaires

... on finira peut-être par comprendre pourquoi tu préférerais une macro

J'ai un fichier maître sur lequel j'ai les différentes affectations des agents.

Je prend la colonne du jour concerné et je fais un collage spécial avec les valeurs, que je colle en colonne B et en colonne L

La 1ère partie de gauche du tableau de la colonne A à la colonne H, me permet de faire un pointage journalier que je transmet en DRH, alors que la partie de droite colonnes K et L, me permet de faire un tri par affectation de tâches que je transmet aux responsables.

Et je répète cette opération pour chaque jour de la semaine en créant un onglet par jour.

Le fait d'avoir ces 6 couleurs nous permet uniquement d'avoir un gain de temps visuel sur les différents services.

69essai-pointage.zip (21.20 Ko)

J'ai réussi à créer une macro qui fonctionne très bien lorsque je tape au clavier le texte, par contre dès que je fais un copier-coller depuis mon autre fichier sur la colonne B, cela ne fonctionne plus, je tombe sur une boite de dialogue débogage.

Voici ma macro

Private Sub Worksheet_Change(ByVal Target As Range)

Select Case Target

Case "Congés"

Target.Interior.ColorIndex = 3

Case "NICE EST"

Target.Interior.ColorIndex = 4

Case "NICE OUEST"

Target.Interior.ColorIndex = 20

Case "NICE NORD"

Target.Interior.ColorIndex = 6

Case "Repos"

Target.Interior.ColorIndex = 15

Case "ABSENT"

Target.Interior.ColorIndex = 35

End Select

End Sub

Est-ce qu'une personne aurait une solution, car j'aimerais passer par le copier-coller depuis mon autre fichier

Merci

Bonsoir,

Je ne veux pas donner l'impression d'être de mauvaise volonté, mais je ne vois toujours pas l'intérêt d'une macro, dans le contexte que tu expliques.

La question subsidiaire étant: "est-ce que tu es intéressé (ou pas) par une solution sans macro?"

Oui je suis intéressé par une solution sans macro éventuellement.

Ce que j'aimerais c'est surtout un gain de temps sans être obligé de répéter toujours les mêmes opérations tous les jours, c'est pour cela que je parlais d'une macro, mais s'il y a plus simple, pourquoi pas.

Merci

Snowkite a écrit :

Oui je suis intéressé par une solution sans macro éventuellement

Je sens encore un brin de scepticisme dans le "éventuellement"

Essayons ce qui suit, alors: dans la pièce jointe, je n'ai conservé que ta feuille 16.

Au départ de cette feuille, j'ai créé la feuille nommée "Modèle"; celle-ci est vierge de données en colonnes B et L, mais ces deux colonnes contiennent déjà 3 MFC (Mises en Forme Conditionnelles). Je me suis permis de faire le grand ménage parmi les MFC qui existaient déjà et qui, pour une bonne part semblaient peu adaptées. Je ne sais pas ce que tu connais déjà, mais si tu regardes en feuille 16 dans Mises en Forme Conditionnelles > Gérer les règles et qu'en haut de la fenêtre tu sélectionnes "cette feuille de calcul" dans la liste en haut, au centre, tu devrais comprendre de quoi je parle.

Bref, dans la feuille Modèle, j'ai prévu les cas "congés", "Nice Est"" et "Nice Nord" (en essayant de respecter les couleurs que tu avais utilisées ... à vérifier)

La cellule D2 qui devrait contenir une date cessera d'être rouge dès qu'elle sera complétée (on pourrait y ajouter une validation de données pour éviter toute erreur d'encodage).

Cette feuille doit rester un modèle. Il ne faut donc rien y encoder dans les colonnes B et L. Par contre, dès que tu veux créer une nouvelle feuille, fais un clic droit sur l'onglet de cette feuille et, dans le menu, choisis "Déplacer ou copier". Dans la boîte de dialogue, sélectionne la feuille Modèle dans la liste des feuilles, coche la case "Créer une copie" et appuie sur OK.

Excel ajoute, devant la feuille Modèle, une copie conforme de cette feuille, nommée "Modèle (2)". Renomme cette dernière, inscris certaines des valeurs prévues dans les MFC dans tes deux colonnes et dis-nous si ça répond à ta demande (ou si j'ai oublié quelque chose d'essentiel)

Note importante: ton profil renseigne MAC 2011, mais ton fichier est un .xls (version Excel 97-2003). Au vu des MFC déjà présentes dans ton classeur, tu ne devrais plus être au format 97-2003. Si ce devait être le cas, précise-le parce qu'effectivement, on aura un problème de MFC, dans ce cas!

Bonsoir.

La mise en forme par macro VBA est possible et son lancement peut se faire par différentes manières. Ceci dit, la MFC est non seulement possible mais pratique également. Alors je vous propose de jeter un coup d’œil à votre feuille remodelée pour trois couleurs seulement de l'onglet 16 et on reparlera de la suite à faire ou de la macro.

Cordialement.

U.Milité, franchement merci c'est au top, cela fonctionne nickel, j'ai même pu rajouter des MFC sur ton modèle. Le soucis c'est que je ne savais pas comment cela fonctionnait (maintenant grâce à toi "Oui").

J'aimerais si il est possible que lorsque un agent est de :

Repos, il est une croix "X" qui s'affiche dans la cellule H correspondante

Congés il est une croix "X" qui s'affiche dans la cellule F correspondante

ABSENT il est une croix "X" qui s'affiche dans la cellule G correspondante

Je ne sais pas ce qu'il faut faire, faut il passer par la MFC ou faut-il créer une formule.

Merci encore de votre aide.

Snowkite a écrit :

cela fonctionne nickel

Il aura tout de même fallu 15 messages pour t'en convaincre Tant mieux si ça fonctionne (au moins je n'étais pas "à côté de la plaque")

La Mise en Forme Conditionnelle ne modifiera -comme son nom l'indique- que l'apparence, le format d'une cellule. On ne peut pas les utiliser pour modifier le contenu. Si c'est un 'X' que tu veux afficher dans tes colonnes F à H, ce serait plutôt via une formule. Essaie, en F6:

=SI(B6="congés";"X";"")

... à recopier vers le bas.

Cette formule et ses voisines peuvent évidemment être insérées dans la feuille Modèle, de manière qu'elle figurent automatiquement dans les copies que tu créeras.

Tant qu'à faire, je m'intéresserais aussi aux Validations de données que j'ai évoquées. Si la formule ci-dessus ne sera pas sensible à la casse (majuscules/minuscules), elle ne donnera par contre pas le bon résultat si quelqu'un oublie le 's' final ou l'accent sur le 'é' ou encore qu'un caractère d'espacement existe après le dernier caractère.

Finalement, j'avais réussi à trouver cette formule.

Encore une question, avec cette formule si, est-il possible par exemple dans la colonne C d'avoir un X pour les personnes :

ENC MATIN 5H-12H

CARTON MATIN

POLY + CP 4H-12H

POLY 5H-12H

POLY 9H-16H

Contrôle Privé 06H-14H

Secrétariat 8H30-12H/12H45-16H15

Standard 8H-12H/13H-16H30

Les autres restent en blanc, je pense qu'il faut faire une imbrication de cette fonction si, mais je me mélange les pinceaux avec toutes les parenthèses.

Une fois cette formule créer pour la colonne C, je pense qu'il suffira de changer les valeurs pour les colonnes D et E

Merci

Problème résolu, les fonctions si viennent d'être intégrées dans le modèle, je viens d'y arriver

Encore merci à tous de votre aide, vous avez fait du super boulot.

les fonctions si viennent d'être intégrées dans le modèle, je viens d'y arriver

Bravo!

Ceci dit, tu peux sans doute simplifier cette série de SI imbriqués en inscrivant tes 8 mentions dans une colonne quelconque (y compris dans une feuille supplémentaire ... que tu pourrais même masquer). Nomme ensuite cette plage de cellules (par exemple HorMat ... pour horaire matin, si j'ai compris).

En C6, ta formule peut alors être simplement:

=SI(NB.SI(HorMat;B6);"C";"")

Bonne continuation,

Rechercher des sujets similaires à "changement couleur fonction nom"