VBA sur une MFC en fonction de critères

Bonjour à tous et à toutes !

Ma question est la suivante : Est-il possible d'ajouter une VBA à une mise en forme conditionnelle en fonction de critères.

Mon besoin est de colorier les cellules en fonctions de critères qui se trouvent dans une autre colonne que celle de la mise en forme conditionnelle.

La MFC s'applique des cellules G à FA et les critères se trouvent dans la colonne F

Je souhaiterait que les cellules se colorient selon les critères suivants

Si F2 = Lacunes, la MFC est rouge

Si F2 = Absent de B = Rien

SI F2 = (vide), la MFC est verte

Si F2 = En cours, la MFC est bleu

Si F2 = Présent de B, la MFC est violette

Peux importe la tonalité des couleurs, la finalité est d'avoir des couleurs distinctives.

Ps : le fichier joint ne contient que 5 lignes : un exemple pour un cas, je ne peux pas envoyer le fichier en entier mais je peux ensuite modifier la délimitation sur les lignes. Le fichier en entier comporte plus de 6000 lignes.

Je vous remercie par avance pour tous retour constructif et surtout pour votre précieuse aide !

7vba-sur-mcf.xlsx (33.79 Ko)

Bonsoir,

Avant de penser à faire intervenir VBA en matière de MFC, il convient de définir quelle mise en forme l'on veut !

Tu définis 4 mises en forme (je ne compte pas la mise en forme nulle, elle ne donne lieu à rien ! ) pour une même plage de cellules, alternatives, elles reposent sur des conditions dont l'une seule peut être vraie à la fois. Pas de problème donc, de ce point de vue.

Ce qui par contre en est un, c'est qu'il existe déjà une MFC sur cette plage, reposant sur une condition autre ! Là il y a conflit !

Ce n'est pas insurmontable, mais tu ne peux appliquer simultanément à une même cellule 2 mises en forme de même type (au cas particulier, couleur de fond). Tu peux éventuellement jouer sur un autre type de mise en forme : couleur de police, motir, etc.

Mais il convient de décider sur ce point pour que cela cohabite...

Cordialement.

MFerrand a écrit :

Bonsoir,

Avant de penser à faire intervenir VBA en matière de MFC, il convient de définir quelle mise en forme l'on veut !

Tu définis 4 mises en forme (je ne compte pas la mise en forme nulle, elle ne donne lieu à rien ! ) pour une même plage de cellules, alternatives, elles reposent sur des conditions dont l'une seule peut être vraie à la fois. Pas de problème donc, de ce point de vue.

Ce qui par contre en est un, c'est qu'il existe déjà une MFC sur cette plage, reposant sur une condition autre ! Là il y a conflit !

Ce n'est pas insurmontable, mais tu ne peux appliquer simultanément à une même cellule 2 mises en forme de même type (au cas particulier, couleur de fond). Tu peux éventuellement jouer sur un autre type de mise en forme : couleur de police, motir, etc.

Mais il convient de décider sur ce point pour que cela cohabite...

Cordialement.

Bonsoir,

Je te remercie pour ton retour

Oui c'est vrai tu as raison, la mise en MFC reporte déjà sur une condition celle que mes cellules comprises entre G et FA contiennent 1. Merci pour cette explication pertinente car j'avais complètement négligé cet aspect.

Par contre je ne sais pas si c'est possible de distinguer avec les cellules selon des couleurs différentes.

Cordialement.

Pour les MFC envisagées : 4 couleurs selon conditions, cela fait 4 MFC... pas de problème particulier (une fois réglée la question de la préexistante).

MFerrand a écrit :

Pour les MFC envisagées : 4 couleurs selon conditions, cela fait 4 MFC... pas de problème particulier (une fois réglée la question de la préexistante).

Super ! Grâce à ta réponse j'en connais un peu plus sur la fonction et sur la façon d'éviter un conflit qui semble évident d'un point de vue informatique mais pas d'un point de vue humain.

Par contre comment je peux procéder de façon automatique pour répondre à mon besoin, j'ai l'impression que mes connaissances pour les MFC sont un peu limitées, car je pensais que je pouvais appliquer une MFC selon un seul critère et cela n'a pas l'air d'être le cas.

Mon tableau initial comporte plus de 6000 lignes et celles-ci devront être trier par la suite, c'est pourquoi je ne peux pas faire une MFC limitée à quelques lignes sinon ma distinction des couleurs est inutile, sinon quand je vais trier les résultats le code couleur sera plus pertinent.

Une MFC se définit par deux éléments : la plage sur laquelle elle s'applique et la mise en forme à appliquer.

Une même plage (même discontinue), et une même mise en forme justifie une seule MFC !

Quand il y a plusieurs mises en forme, même si la même plage est concernée, il y aura autant de MFC à définir...

Cordialement.

MFerrand a écrit :

Une MFC se définit par deux éléments : la plage sur laquelle elle s'applique et la mise en forme à appliquer.

Une même plage (même discontinue), et une même mise en forme justifie une seule MFC !

Quand il y a plusieurs mises en forme, même si la même plage est concernée, il y aura autant de MFC à définir...

Cordialement.

J'ai un peu du mal a saisir... Un lien vers un tuto m'aiderait.

Après je sais faire une MFC car dans mon fichier elle colorie que les cases comprises entre les colonnes G et FA quand la cellule contient un 1, par contre je ne sais pas comment appliquer une couleur en fonction des éléments inscrits en colonne F. Je ne veux pas que ça soit la colonne F qui porte la couleur mais les cellules comprises entre G et FA.

Peut-être que c'est moi qui a été confuse quand j'ai lancé le sujet.

Si tu avais défini la MFC existante par formule (c'était possible même si le menu te permet de faire autrement), tu aurais écrit comme formule conditionnelle :

=G2=1

Pourquoi ?

G2 est la cellule supérieure gauche de ta plage d'application. La formule s'appliquant à G2 est bien celle ci-dessus. Pour quelle puisse s'appliquer à toutes les cellules de la plages (dans les mêmes conditions que si l'on avait à la recopier) les références doivent être relatives : G2 et non $G$2 ni $G2 ni G$2...

Pour tes nouvelles MFC tu es obligé de procéder par formule. La plage d'application est la même. La condition est en F, la référence colonne devra être en référence absolue, par contre la ligne en réf. relative :

=$F2="Lacunes"

La formule s'applique à G2, dans les mêmes conditions à toutes les cellules de la ligne 2. Pour la ligne 3 elle sera interprétée F3, etc.

Pour les autres MFC, il n'y a que "Lacunes" qui change, $F2 demeure !

Cordialement.

MFerrand a écrit :

Si tu avais défini la MFC existante par formule (c'était possible même si le menu te permet de faire autrement), tu aurais écrit comme formule conditionnelle :

=G2=1

Pourquoi ?

G2 est la cellule supérieure gauche de ta plage d'application. La formule s'appliquant à G2 est bien celle ci-dessus. Pour quelle puisse s'appliquer à toutes les cellules de la plages (dans les mêmes conditions que si l'on avait à la recopier) les références doivent être relatives : G2 et non $G$2 ni $G2 ni G$2...

Pour tes nouvelles MFC tu es obligé de procéder par formule. La plage d'application est la même. La condition est en F, la référence colonne devra être en référence absolue, par contre la ligne en réf. relative :

=$F2="Lacunes"

La formule s'applique à G2, dans les mêmes conditions à toutes les cellules de la ligne 2. Pour la ligne 3 elle sera interprétée F3, etc.

Pour les autres MFC, il n'y a que "Lacunes" qui change, $F2 demeure !

Cordialement.

Je te remercie pour la réponse !

J'ai essayé d'établir une MFC par une formule, contrairement à ce que j'avais procédé "appliquer une règle car la cellule contient telle valeur" tout en gardant la délimitation =$G$2:$FA$6190.

Un point positif est que j'ai réussi à appliquer ta méthode à 50/50 car toutes les cellules des lignes entre G et FA où la cellule F... contient "lacunces" sont coloriées et la cellule F reste neutre.

Par contre je n'ai pas réussi à bien faire ma première MFC car les cellules ne sont pas coloriées ce qui impacte ma seconde formule car toutes les cellules sont coloriées même celles qui sont vides.

Bonjour,

La formule définit une condition. Elle est appliquées. Pour appliquer plusieurs conditions, il faut les définir dans la formule !

C'est un peu tardivement que je réponds mais j'ai réussi l'application de la MFC comme tu me l'a indiqué (par l’intermédiaire d'une formule).

En fait je ne connaissais que les fonctions basiques, celles où excel nous guide.

Merci beaucoup pour ta précieuse aide.

Rechercher des sujets similaires à "vba mfc fonction criteres"