Excel - colorier une cellule selon la couleur d'une autre
Fermé
ManuLux
Messages postés
5
Date d'inscription
lundi 5 janvier 2015
Statut
Membre
Dernière intervention
7 janvier 2015
-
5 janv. 2015 à 17:18
ManuLux Messages postés 5 Date d'inscription lundi 5 janvier 2015 Statut Membre Dernière intervention 7 janvier 2015 - 7 janv. 2015 à 13:02
ManuLux Messages postés 5 Date d'inscription lundi 5 janvier 2015 Statut Membre Dernière intervention 7 janvier 2015 - 7 janv. 2015 à 13:02
A voir également:
- Excel - colorier une cellule selon la couleur d'une autre
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
- Verrouiller une cellule excel - Guide
9 réponses
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 429
5 janv. 2015 à 17:48
5 janv. 2015 à 17:48
Bonjour
Je pense qu'il va falloir passer par une macro
Peux tu envoyer une partie de ton fichier au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message (ajoutes y quelques exemple)
Cdlmnt
Je pense qu'il va falloir passer par une macro
Peux tu envoyer une partie de ton fichier au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message (ajoutes y quelques exemple)
Cdlmnt
ManuLux
Messages postés
5
Date d'inscription
lundi 5 janvier 2015
Statut
Membre
Dernière intervention
7 janvier 2015
5 janv. 2015 à 18:23
5 janv. 2015 à 18:23
Voici : https://www.cjoint.com/?3AfsxoF53jf
Ce document me permet de gérer l'emploi du temps de plusieurs personnes sur l'année.
il y 2 feuillets relatif à une même personne. (personne1 et personne-1). Sur le premier feuillet je gère l'emploi du temps hebdomadaire et le second sa projection sur l'année.
Sur le second feuillet qui gère l'emploi du temps à l'année je note les congés, maladie, heures sup avec une colonne dont je colorie la case du jour concerné. (dans mon document les cases sont bleus ou rouges)
Je voudrais que la mise en forme de cette colonne soit reproduite dans le feuillet "congés global" dans la colonne qui correspond au nom de la personne concernés.
Pas évident d'expliquer très clairement, je m'en excuse.
Ce document me permet de gérer l'emploi du temps de plusieurs personnes sur l'année.
il y 2 feuillets relatif à une même personne. (personne1 et personne-1). Sur le premier feuillet je gère l'emploi du temps hebdomadaire et le second sa projection sur l'année.
Sur le second feuillet qui gère l'emploi du temps à l'année je note les congés, maladie, heures sup avec une colonne dont je colorie la case du jour concerné. (dans mon document les cases sont bleus ou rouges)
Je voudrais que la mise en forme de cette colonne soit reproduite dans le feuillet "congés global" dans la colonne qui correspond au nom de la personne concernés.
Pas évident d'expliquer très clairement, je m'en excuse.
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 429
5 janv. 2015 à 18:30
5 janv. 2015 à 18:30
Désolé, je ne peux pas l'ouvrir avec excel 2003
Cdlmnt
Cdlmnt
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
5 janv. 2015 à 18:33
5 janv. 2015 à 18:33
Bonjour
Au lieu de colorer les cellules "manuellement" il vaudrait mieux entrer une lettre , C pour congés, M pour maladie par ex et faire colorer les cellules par mise en forme conditionnelle.
Il est aisé ensuite dans le Recap de récuperer les valeurs-lettres dans les cellules et d'appliquer la même MFC pour mettre en couleurs
Néanmoins si les cellules sont colorées "manuellement" il est possible par macro de faire colorer les cellules de Recap à l'identique
Fichier exemple illustrant les 2 possibilités : https://www.cjoint.com/?0AfsPQXOUM2
Cdlmnt
Au lieu de colorer les cellules "manuellement" il vaudrait mieux entrer une lettre , C pour congés, M pour maladie par ex et faire colorer les cellules par mise en forme conditionnelle.
Il est aisé ensuite dans le Recap de récuperer les valeurs-lettres dans les cellules et d'appliquer la même MFC pour mettre en couleurs
Néanmoins si les cellules sont colorées "manuellement" il est possible par macro de faire colorer les cellules de Recap à l'identique
Fichier exemple illustrant les 2 possibilités : https://www.cjoint.com/?0AfsPQXOUM2
Cdlmnt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
5 janv. 2015 à 19:09
5 janv. 2015 à 19:09
Re
Depuis mon dernier message tu as posté ton fichier qui est plus complexe que prévu
Voilà la macro pour colorer le Recap global à l'aide du bouton Actualiser à droite
https://www.cjoint.com/?0AftqGbKN15
Cdlmnt
Depuis mon dernier message tu as posté ton fichier qui est plus complexe que prévu
Voilà la macro pour colorer le Recap global à l'aide du bouton Actualiser à droite
https://www.cjoint.com/?0AftqGbKN15
Cdlmnt
ManuLux
Messages postés
5
Date d'inscription
lundi 5 janvier 2015
Statut
Membre
Dernière intervention
7 janvier 2015
6 janv. 2015 à 15:29
6 janv. 2015 à 15:29
J'ai fais un test rapide et cela marche !!
Un gros MERCI !
J'ai deux questions. Tout d'abord pour que cela se réactualise je vais dans macro et exécuter. Est ce nécessaire? N'y a t'il pas plus court. Je n'ai pas de bouton réactualiser mais je suppose que c'est un soucis de paramètres dans l'affichage ?
Seconde question. La macro fonctionne mais si je veux ajouter des personnes je dois ajouter des feuillets. Cela veut-il dire que je devrais modifier la macro ?
Est ce compliqué ?
En fait ça fait plus de deux questions mais je suis ravie que vous ayez trouver une solution. Ce fichier va me permettre de gagner beaucoup de temps.
Encore merci !!
Un gros MERCI !
J'ai deux questions. Tout d'abord pour que cela se réactualise je vais dans macro et exécuter. Est ce nécessaire? N'y a t'il pas plus court. Je n'ai pas de bouton réactualiser mais je suppose que c'est un soucis de paramètres dans l'affichage ?
Seconde question. La macro fonctionne mais si je veux ajouter des personnes je dois ajouter des feuillets. Cela veut-il dire que je devrais modifier la macro ?
Est ce compliqué ?
En fait ça fait plus de deux questions mais je suis ravie que vous ayez trouver une solution. Ce fichier va me permettre de gagner beaucoup de temps.
Encore merci !!
ManuLux
Messages postés
5
Date d'inscription
lundi 5 janvier 2015
Statut
Membre
Dernière intervention
7 janvier 2015
6 janv. 2015 à 15:55
6 janv. 2015 à 15:55
Je viens de voir le bouton "actualiser". Ca fait une question en moins ;)
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
6 janv. 2015 à 16:48
6 janv. 2015 à 16:48
Bonjour,
1) J'ai bien mis un bouton sur la feuille en colonne BJ
Tu peux aussi si tu prefères chosir un raccourci-clavier pour lancer la macro : Onglet Developpeur Macros Options
2) Si tu rajoutes des feuilles et donc des colonnes dans Global il faut modifier en effet dans la macro d'une part la boucle qui décompte les personnes et d'autre part le calcul pour colorer dans Global car le décalage des colonnes dans global va changer
Pour l'instant le calcul pour la colonne 5 de perso pour personne 3 donne 5*2-2+(3*-1)+3 soit 10-2 -3+3 = 8 soit la colonne H puis pour la colonne 10 donne 18 soit colonne R etc
Si il y a 4 personnes la 1ere colonne sera toujours la colonne H mais la suivante sera la colonne S etc il faut donc rebâtir une formule
La structure de la formule de base est :
colonne*nombre a + nombre b + p *-1 + nombre c
nombre c correspond au nombre de personnes
nombre a est trouvé (par résolution d'un système d'équations)en faisant le calcul : (2eme colonne de Global- 1ere colonne de Global)/2eme colonne de feuille perso - 1ere colonne de feuille perso)
(dans le cas présent: (18-8)/(10-5) = 10/5 =2
dans le cas de 4 personnes: (19-8)/(10-5)= 11/5)
nombre b est trouvé en faisant le calcul : 1ere colonne de global - (1ere colonne perso * nombre b)
(dans le cas présent: 8-(5*2) = 8-10= -2
dans le cas de 4 personnes: 8-(5*11/5) =8-11=-3)
La formule pour ' personnes sera donc :
colonneG = colonne * 11/5 - 3 + p * -1 + 4
On peut automatiser ce calcul dans la macro
A ce moment il faut remplacer la 1ere par celle ci
Il te suffiras alors simplement de changer le nombre de personnes dans la 1ere ligne pour que la macro s'adapte
Cdlmnt
1) J'ai bien mis un bouton sur la feuille en colonne BJ
Tu peux aussi si tu prefères chosir un raccourci-clavier pour lancer la macro : Onglet Developpeur Macros Options
2) Si tu rajoutes des feuilles et donc des colonnes dans Global il faut modifier en effet dans la macro d'une part la boucle qui décompte les personnes et d'autre part le calcul pour colorer dans Global car le décalage des colonnes dans global va changer
Sub reportconges() 'Boucle sur les personnes de la dernière à la 1ere puisqu'elles sont dans cet ordre dans global For p = 3 To 1 Step -1 ' Boucle sur les colonnes des feuilles personnelles de 5 en 5 (colonne E puis J etc) For colonne = 5 To 30 Step 5 For ligne = 2 To 69 col = Sheets("Personne-" & p).Cells(ligne, colonne).Interior.ColorIndex colonneG = colonne * 2 - 2 + p * -1 + 3 'calcul de la colonne de Global où colorer Sheets("Congés Global").Cells(ligne, colonneG).Interior.ColorIndex = col Next ligne Next colonne Next p End Sub
Pour l'instant le calcul pour la colonne 5 de perso pour personne 3 donne 5*2-2+(3*-1)+3 soit 10-2 -3+3 = 8 soit la colonne H puis pour la colonne 10 donne 18 soit colonne R etc
Si il y a 4 personnes la 1ere colonne sera toujours la colonne H mais la suivante sera la colonne S etc il faut donc rebâtir une formule
La structure de la formule de base est :
colonne*nombre a + nombre b + p *-1 + nombre c
nombre c correspond au nombre de personnes
nombre a est trouvé (par résolution d'un système d'équations)en faisant le calcul : (2eme colonne de Global- 1ere colonne de Global)/2eme colonne de feuille perso - 1ere colonne de feuille perso)
(dans le cas présent: (18-8)/(10-5) = 10/5 =2
dans le cas de 4 personnes: (19-8)/(10-5)= 11/5)
nombre b est trouvé en faisant le calcul : 1ere colonne de global - (1ere colonne perso * nombre b)
(dans le cas présent: 8-(5*2) = 8-10= -2
dans le cas de 4 personnes: 8-(5*11/5) =8-11=-3)
La formule pour ' personnes sera donc :
colonneG = colonne * 11/5 - 3 + p * -1 + 4
On peut automatiser ce calcul dans la macro
A ce moment il faut remplacer la 1ere par celle ci
Sub reportconges() pers = 3 ' nombre de personnes nba = (7 + pers) / 5 nbb = 8 - 5 * nba For p = pers To 1 Step -1 For colonne = 5 To 30 Step 5 For ligne = 2 To 69 col = Sheets("Personne-" & p).Cells(ligne, colonne).Interior.ColorIndex colonneG = colonne * nba + nbb + p * -1 + pers Sheets("Congés Global").Cells(ligne, colonneG).Interior.ColorIndex = col Next ligne Next colonne Next p End Sub
Il te suffiras alors simplement de changer le nombre de personnes dans la 1ere ligne pour que la macro s'adapte
Cdlmnt
ManuLux
Messages postés
5
Date d'inscription
lundi 5 janvier 2015
Statut
Membre
Dernière intervention
7 janvier 2015
7 janv. 2015 à 13:02
7 janv. 2015 à 13:02
Merci de toutes ces infos.
C'est tout neuf pour moi. Je comprends le principe dans les grosses lignes mais mes premières tentatives de modifications sont des échecs..
Je vais essayer de m'y pencher avec plus de temps et éventuellement revenir avec des questions précises. Pour le moment je rame !!
C'est tout neuf pour moi. Je comprends le principe dans les grosses lignes mais mes premières tentatives de modifications sont des échecs..
Je vais essayer de m'y pencher avec plus de temps et éventuellement revenir avec des questions précises. Pour le moment je rame !!