[Excel] : Macro pour modifier format cell en fonction d'une autr
Résolu/Fermé
GregBabar
Messages postés
8
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
7 mars 2016
-
22 janv. 2016 à 10:30
GregBabar Messages postés 8 Date d'inscription vendredi 22 janvier 2016 Statut Membre Dernière intervention 7 mars 2016 - 8 févr. 2016 à 10:29
GregBabar Messages postés 8 Date d'inscription vendredi 22 janvier 2016 Statut Membre Dernière intervention 7 mars 2016 - 8 févr. 2016 à 10:29
A voir également:
- [Excel] : Macro pour modifier format cell en fonction d'une autr
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
3 réponses
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
22 janv. 2016 à 11:05
22 janv. 2016 à 11:05
Bonjour Greg,
Tu ne dis pas pourquoi les mises en forme conditionnelles avec formules ne fonctionnent pas sur la version d’Excel de la personne à qui tu as envoyé le fichier.
Si tu automatises cette mise en forme avec une macro, je ne vois pas pourquoi tu utilises un onglet supplémentaire.
Un classeur pour exemple serait le bienvenu.
Pour joindre un fichier, tu peux utiliser https://www.cjoint.com/
A+
Tu ne dis pas pourquoi les mises en forme conditionnelles avec formules ne fonctionnent pas sur la version d’Excel de la personne à qui tu as envoyé le fichier.
Si tu automatises cette mise en forme avec une macro, je ne vois pas pourquoi tu utilises un onglet supplémentaire.
Un classeur pour exemple serait le bienvenu.
Pour joindre un fichier, tu peux utiliser https://www.cjoint.com/
A+
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
22 janv. 2016 à 16:50
22 janv. 2016 à 16:50
Je vois bien la structure de la feuille "MFC Tot" et les mises en forme conditionnelles associées.
Je comprends moins bien la feuille "MFC" où il semble qu'une relation soit faite entre couleur, activité et valeur (mais pourquoi 2 tableaux séparés ?). Comme il n'y a aucun lien avec les autre feuilles, je ne vois pas d'intérêt autre que celui d'indiquer cette relation Valeur <=> Activité <=> Couleur.
Et je comprends encore moins bien l'utilité de la feuille "Janvier Decembre" qui semble reproduire la feuille "MFC Tot". Tu dis vouloir y intégrer une mise en forme en fonction de l'onglet "MFC Tot". J'ai du mal à saisir ...
J'aurais mieux compris si tu disais vouloir intégrer des MFC dans la feuille "Janvier Decembre" en suivant la codification placée dans la feuille MFC.
Exemple : si valeur 1 en E3, alors appliquer le format correspondant indiqué en feuille MFC, soit 1 <=> Activité 1 <=> rose bonbon.
Mais si c'est cela, je ne vois pas du tout l'intérêt de la feuille MFC Tot.
A+
Je comprends moins bien la feuille "MFC" où il semble qu'une relation soit faite entre couleur, activité et valeur (mais pourquoi 2 tableaux séparés ?). Comme il n'y a aucun lien avec les autre feuilles, je ne vois pas d'intérêt autre que celui d'indiquer cette relation Valeur <=> Activité <=> Couleur.
Et je comprends encore moins bien l'utilité de la feuille "Janvier Decembre" qui semble reproduire la feuille "MFC Tot". Tu dis vouloir y intégrer une mise en forme en fonction de l'onglet "MFC Tot". J'ai du mal à saisir ...
J'aurais mieux compris si tu disais vouloir intégrer des MFC dans la feuille "Janvier Decembre" en suivant la codification placée dans la feuille MFC.
Exemple : si valeur 1 en E3, alors appliquer le format correspondant indiqué en feuille MFC, soit 1 <=> Activité 1 <=> rose bonbon.
Mais si c'est cela, je ne vois pas du tout l'intérêt de la feuille MFC Tot.
A+
GregBabar
Messages postés
8
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
7 mars 2016
25 janv. 2016 à 16:42
25 janv. 2016 à 16:42
Hello Gyrus,
"J'aurais mieux compris si tu disais vouloir intégrer des MFC dans la feuille "Janvier Decembre" en suivant la codification placée dans la feuille MFC.
Exemple : si valeur 1 en E3, alors appliquer le format correspondant indiqué en feuille MFC, soit 1 <=> Activité 1 <=> rose bonbon. "
C'est exactement ça, l'onglet MFC TOT n'est qu'un reliquat d'une ancienne version, dans laquelle j'essayais de ne pas utiliser de Macro.
Mais comme c'est le cas aujourd'hui, la solution que tu préconises dans le passage que j'ai cité précédemment est exactement celle qu'il me faut. Si tu as un code vba à me proposer en exemple je suis preneur !! :)
Merci de ton aide en tout cas !
"J'aurais mieux compris si tu disais vouloir intégrer des MFC dans la feuille "Janvier Decembre" en suivant la codification placée dans la feuille MFC.
Exemple : si valeur 1 en E3, alors appliquer le format correspondant indiqué en feuille MFC, soit 1 <=> Activité 1 <=> rose bonbon. "
C'est exactement ça, l'onglet MFC TOT n'est qu'un reliquat d'une ancienne version, dans laquelle j'essayais de ne pas utiliser de Macro.
Mais comme c'est le cas aujourd'hui, la solution que tu préconises dans le passage que j'ai cité précédemment est exactement celle qu'il me faut. Si tu as un code vba à me proposer en exemple je suis preneur !! :)
Merci de ton aide en tout cas !
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
>
GregBabar
Messages postés
8
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
7 mars 2016
26 janv. 2016 à 10:36
26 janv. 2016 à 10:36
Bonjour,
Voici un exemple qui illustre la solution préconisée
https://www.cjoint.com/c/FAAjxsuyQEC
La modification d'une cellule dans la plage E3:JD30 est détectée avec l'évènement Worksheet.Change. La procédure cherche le code dans la feuille MFC et affecte les style et couleur de motif correspondant à ce code.
Dis-moi si tu as besoin d'explications complémentaires.
A+
Voici un exemple qui illustre la solution préconisée
https://www.cjoint.com/c/FAAjxsuyQEC
La modification d'une cellule dans la plage E3:JD30 est détectée avec l'évènement Worksheet.Change. La procédure cherche le code dans la feuille MFC et affecte les style et couleur de motif correspondant à ce code.
Dis-moi si tu as besoin d'explications complémentaires.
A+
GregBabar
Messages postés
8
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
7 mars 2016
>
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
28 janv. 2016 à 16:38
28 janv. 2016 à 16:38
Hello Gyrus,
En fait, l'onglet MFC Tot servait à déterminer le nombre qui permet d'avoir la bonne mise en forme. Et c'est ensuite cette mise en forme qui doit être copiée sur l'onglet Janv-Decembre.
Dit autrement, la mise en forme des cellules de l'onglet "janv-decembre" ne dépend pas du contenu des cellules dudit onglet, mais bien du contenu des cellules de l'onglet MFC tot.
Je ne sais pas si c'est clair, le fait de bosser sur des onglets anonymisés fait que je peux avoir tendance à m'embrouiller dans mes explications :)
Vraiment, merci beaucoup pour ton aide sur ce sujet !
Greg
En fait, l'onglet MFC Tot servait à déterminer le nombre qui permet d'avoir la bonne mise en forme. Et c'est ensuite cette mise en forme qui doit être copiée sur l'onglet Janv-Decembre.
Dit autrement, la mise en forme des cellules de l'onglet "janv-decembre" ne dépend pas du contenu des cellules dudit onglet, mais bien du contenu des cellules de l'onglet MFC tot.
Je ne sais pas si c'est clair, le fait de bosser sur des onglets anonymisés fait que je peux avoir tendance à m'embrouiller dans mes explications :)
Vraiment, merci beaucoup pour ton aide sur ce sujet !
Greg
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
29 janv. 2016 à 09:03
29 janv. 2016 à 09:03
Bonjour,
Si je comprends bien (et c'est pas gagné), lorsque l'opérateur saisit un nombre dans la feuille "janv-decembre", il faut rechercher ce nombre dans la feuille "MFC Tot" et affecter la couleur de remplissage de la cellule trouvée à celle de la saisie.
En clair, cette fois c'est la feuille MFC qui ne sert plus à rien.
J'ai bon ?
A+
Si je comprends bien (et c'est pas gagné), lorsque l'opérateur saisit un nombre dans la feuille "janv-decembre", il faut rechercher ce nombre dans la feuille "MFC Tot" et affecter la couleur de remplissage de la cellule trouvée à celle de la saisie.
En clair, cette fois c'est la feuille MFC qui ne sert plus à rien.
J'ai bon ?
A+
GregBabar
Messages postés
8
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
7 mars 2016
1 févr. 2016 à 10:01
1 févr. 2016 à 10:01
Hello Gyrus,
En fait, pas vraiment :) je comprends que ce soit un peu compliqué, vu qu'en plus j'ai modifié le fichier pour le rendre anonyme (pour des raisons de confidentialité, tout ça).
En gros, l'utilisateur saisie des infos dans des onglets. Ces infos sont déversées pour une partie dans l'onglet janv-decembre directement (au format texte) et les autres sont traitées par l'onglet MFC tot sous format numérique. C'est dans cet onglet qu'il y a une mise en forme conditionnelle en fonction du résultat obtenu dans la cellule (par exemple, si condition 1 et condition 2 remplie, alors résultat = 3 et donc mise en forme conditionnelle de case jaune à pois bleus)
Jusque là, tout va bien et mon fichier fonctionne.
Ma difficulté, c'est que je n'arrive pas à faire une macro qui permette de faire en sorte que les cellules de l'onglet janv-decembre prennent le format des cellules correspondantes dans l'onglet MFC tot sans se soucier de leur propre contenu de cellule.
Par exemple, considérons la cellule A3 de l'onglet Janv-Decembre:
comme c'est une case particulière, une information au format texte est présente dans cette cellule, suite aux données rentrées par l'opérateur dans les onglets de saisie.
Il se trouve également que la cellule A3 de l'onglet MFC tot a pour résultat 2, suite à d'autres infos rentrées dans les onglets de saisie.
La cellule A3 doit donc devenir blanche à pois rouges, comme déterminer dans l'onglet MFC.
Et la cellule A3 de l'oonglet janv-decembre doit copier cette mise en forme.
Il faut donc que la macro fonctionne en 3 étape:
- donner un format à la cellule A3 de l'onglet MFC Tot en fonction du résultat
- copier ce format à la cellule A3 de l'onglet janv-décembre (toujours sans prendre en compte les infos présentes dans cette cellule)
- pouvoir se mettre à jour automatiquement en fonction des changements de saisie (donc si le format de la cellule A3 de l'onglet MFC tot change, le format de la cellule A3 de l'onglet janv-decembre change automatiquement).
J'espère que c'est plus clair comme ça Gyrus :) moi aussi, quand on m'a expliqué le pourquoi du comment, il m'a fallu du temps pour rendre la demande claire.
En tout cas merci beaucoup pour ton aide !
En fait, pas vraiment :) je comprends que ce soit un peu compliqué, vu qu'en plus j'ai modifié le fichier pour le rendre anonyme (pour des raisons de confidentialité, tout ça).
En gros, l'utilisateur saisie des infos dans des onglets. Ces infos sont déversées pour une partie dans l'onglet janv-decembre directement (au format texte) et les autres sont traitées par l'onglet MFC tot sous format numérique. C'est dans cet onglet qu'il y a une mise en forme conditionnelle en fonction du résultat obtenu dans la cellule (par exemple, si condition 1 et condition 2 remplie, alors résultat = 3 et donc mise en forme conditionnelle de case jaune à pois bleus)
Jusque là, tout va bien et mon fichier fonctionne.
Ma difficulté, c'est que je n'arrive pas à faire une macro qui permette de faire en sorte que les cellules de l'onglet janv-decembre prennent le format des cellules correspondantes dans l'onglet MFC tot sans se soucier de leur propre contenu de cellule.
Par exemple, considérons la cellule A3 de l'onglet Janv-Decembre:
comme c'est une case particulière, une information au format texte est présente dans cette cellule, suite aux données rentrées par l'opérateur dans les onglets de saisie.
Il se trouve également que la cellule A3 de l'onglet MFC tot a pour résultat 2, suite à d'autres infos rentrées dans les onglets de saisie.
La cellule A3 doit donc devenir blanche à pois rouges, comme déterminer dans l'onglet MFC.
Et la cellule A3 de l'oonglet janv-decembre doit copier cette mise en forme.
Il faut donc que la macro fonctionne en 3 étape:
- donner un format à la cellule A3 de l'onglet MFC Tot en fonction du résultat
- copier ce format à la cellule A3 de l'onglet janv-décembre (toujours sans prendre en compte les infos présentes dans cette cellule)
- pouvoir se mettre à jour automatiquement en fonction des changements de saisie (donc si le format de la cellule A3 de l'onglet MFC tot change, le format de la cellule A3 de l'onglet janv-decembre change automatiquement).
J'espère que c'est plus clair comme ça Gyrus :) moi aussi, quand on m'a expliqué le pourquoi du comment, il m'a fallu du temps pour rendre la demande claire.
En tout cas merci beaucoup pour ton aide !
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
>
GregBabar
Messages postés
8
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
7 mars 2016
6 févr. 2016 à 08:40
6 févr. 2016 à 08:40
Bonjour,
Tu peux faire en sorte que le format des cellules de la feuille "MFC Tot" et celui des cellules correspondantes de la feuille "Janvier Decembre" soit identique.
Cela peut se faire automatiquement en fonction des changements de saisie des cellules de la feuille "MFC Tot" en utilisant l'évènement Worksheet.Change.
Pour cela, tu n'as pas besoin d'utiliser les MFC d'Excel. Il suffit que tu établisses la correspondance entre valeur et format dans la feuille "MFC". Ensuite, sur un changement de valeur dans la feuille "MFC Tot", la procédure effectue la copie du format correspondant à cette valeur dans la feuille "MFC" et colle le format dans les 2 feuilles "MFC Tot" et "Janvier Decembre".
A+
Tu peux faire en sorte que le format des cellules de la feuille "MFC Tot" et celui des cellules correspondantes de la feuille "Janvier Decembre" soit identique.
Cela peut se faire automatiquement en fonction des changements de saisie des cellules de la feuille "MFC Tot" en utilisant l'évènement Worksheet.Change.
Pour cela, tu n'as pas besoin d'utiliser les MFC d'Excel. Il suffit que tu établisses la correspondance entre valeur et format dans la feuille "MFC". Ensuite, sur un changement de valeur dans la feuille "MFC Tot", la procédure effectue la copie du format correspondant à cette valeur dans la feuille "MFC" et colle le format dans les 2 feuilles "MFC Tot" et "Janvier Decembre".
A+
GregBabar
Messages postés
8
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
7 mars 2016
8 févr. 2016 à 10:29
8 févr. 2016 à 10:29
Hello Gyrus,
Nickel, cela marche parfaitement !
Merci beaucoup du temps que tu as pris pour m'aider,
A charge de revanche,
A+
Nickel, cela marche parfaitement !
Merci beaucoup du temps que tu as pris pour m'aider,
A charge de revanche,
A+
22 janv. 2016 à 14:26
Les mises en forme conditionnelles ne s'affichent même pas quand le destinataire ouvre le fichier. Je pense que le problème vient de nos versions Excel, puisque ma version est plus récente que la sienne.
L'onglet supplémentaire n'est effectivement pas obligatoire, mais permet à mon sens de rendre la macro plus compréhensible pour des non-initiés (ce qui est le cas du destinataire du fichier).
J'ai en effet tenté de créer une macro qui copie le format de la cellule qui possède la mise en forme vers la cellule correspondante dans l'autre onglet. le problème c'est que la macro ne considère pas la forme de la cellule comme un format puisqu'elle vient de la MFC, et ne la copie donc pas ...
Si tu penses qu'une autre méthode fonctionne je prend :)
le fichier actuel (modifié pour des raisons de confidentialité) : http://www.cjoint.com/c/FAwnzFoXyMX
Merci :)