Mettre des cellules en rouge avec critères

Bonjour le Forum,

Etant encore débutant en VBA, j'aurai besoin de votre aide pour une macro.

J'aurai besoin d'une macro qui affiche en rouge les cellules qui ont un critère supérieure au critère de référence (cellule bleu, ici : TBD et TRSEV2).

Voici le fichier Excel pour mieux comprendre :

tableaux pays

Dans mon exemple :
Pour la colonne Altitude, le critère de référence est TBD. Ce critère comme on peut le voir à droite est le critère de sévérité le plus faible. Je voudrai donc afficher automatiquement en rouge les cellules qui contiennent un critère supérieure à TBD (voir la position des critères dans la colonne E à G).

Pour la colonne TEM, le critère de référence est TRSEV2, je veux donc afficher toutes les cellules de cette colonne qui contiennent un critère supérieure à TRSEV2 donc il y a que TRGAS qui sera affiché en rouge.

Après exécution la macro devrait faire ceci :

apres macro

Elle a bien mis en rouge en fonction de la colonne Altitude et TEM, les critères supérieures aux références respectives des colonnes (ici : TBD et TRSEV2).

Je pense qu'il faut définir chaque critère en leur attribuant un nombre dans la macro du style :

TBD = 1, Standard = 2, Flood = 3 et Monsoon = 4

Et TRSEV1 = 1, TRSEV2 = 2 et TRGAS = 3.

Autre chose importante, les critères de référence peuvent changer, on peut avoir par exemple pour la colonne Altitude, le critère Standard à la place de TBD et pour la colonne TEM le critère TRSEV1 à la place de TRSEV2.

N'hésitez pas à me poser des questions afin de rendre claire mon sujet, je répondrai le plus rapidement possible :)

Je vous remercie d'avance et bonne journée !

PS : J'ai joint le fichier excel en PJ.

12macro.xlsx (11.13 Ko)

Bonjour,

Pourquoi utiliser VBA quand une mise en forme conditionnelle toute simple est faisable ? On se base simplement sur la fonction CHERCHE qui permet de renvoyer la position du critère dans la chaîne de caractère. Donc si la position du critère est supérieure à celle de la référence, on colore en rouge la cellule.

Pour plus de détail sous l'éditeur de MEFC :

=CHERCHE(B3;$E$2)>CHERCHE($B$2;$E$2) 'Plage d'application =$B$3:$B$8
=CHERCHE(C3;$E$3)>CHERCHE($C$2;$E$3) 'Plage d'application =$C$3:$C$8

Cdlt,

Bonjour,

Une version alternative à celle (très bonne) d'Ergotamine, si jamais tu veux te faire un petit tableau de correspondance.

image

Tu peux même te passer des correspondances chiffrées avec la fonction equiv.

Salut,

Merci pour vos deux réponses.

Je vais répondre aux deux ici.

Pourquoi utiliser VBA quand une mise en forme conditionnelle toute simple est faisable ? On se base simplement sur la fonction CHERCHE qui permet de renvoyer la position du critère dans la chaîne de caractère. Donc si la position du critère est supérieure à celle de la référence, on colore en rouge la cellule.

J'ai testé les deux fonctions, j'ai des erreurs. Je voulais du VBA puisqu'il faut automatiser le plus les tâches et parce qu'il peut y avoir plusieurs lignes de critères dans mon exemple il y en a pas beaucoup mais dans le vrai fichier que je travaille il y en a des centaines.

Une version alternative à celle (très bonne) d'Ergotamine, si jamais tu veux te faire un petit tableau de correspondance.

J'ai testé ta fonction, mais elle ne semble pas fonctionner dans mon fichier lorsque j'ai recopié la formule cela me mettait France et Espagne en rouge pourrais-tu m'envoyer le fichier où tu as appliqué la mise en forme ?

Tu peux même te passer des correspondances chiffrées avec la fonction equiv

Ah oui, je voudrai bien savoir comment parce que c'est plus pratique sans passer par les correspondances chiffrées.

Encore merci à vous 2.

Cdt,

Muzan93

Re,

j'ai laissé le rechercheV qui fonctionne très bien pour la colonne B, et je t'ai mis l'equiv pour la colonne C.

à trouver dans les règles de MFC.

8exemple-rouge.xlsx (11.44 Ko)

Bonjour à tous,

J'ai testé avant d'envoyer l'alternative, je sais qu'il n'y a pas d'erreur. La mise en place de MEFC est sensible aux cellules sur lesquelles on se trouve lorsqu'on l'applique, aux plages d'applications, aux $ etc ...

Ou peut être que je me suis juste mal exprimé (ou mal compris).

J'étais aussi parti sur la solution avec EQUIV, etc ... Mais une lumière s'est éclairée avec CHERCHE() !

Cf fichier joint.

Cdlt,

Merci beaucoup pour les 2, ça fonctionne bien mais j'aurai préféré passer par du VBA, c'est possible d'automatiser ces fonctions en VBA pour exécuter directement ces fonctions à l'aide d'un bouton parce que sinon c'est vraiment ce que je voulais faire.

Cdt,

Muzan93

Bonjour,

Un exemple de la façon dont tu peux procéder via l'enregistreur de macro dans un 1er temps ... Parce que tu veux absolument faire ça par macro, OK, mais ça t'astreint à une certaine rigidité derrière. Et comme tu n'en dis pas plus sur le vrai fichier, sur comment c'est organisé et tout ...

Bref, il y a moyen de faire mieux, mais tu dois avoir une base viable avec ça.

Arf, GIF trop lourd ... fait suer.

essai

Merci beaucoup JoyeuxNoel j’ai réussi avec l’enregistreur de macro

Je clos le sujet bonne journée.

Je t'avais fait un petite vidéo de la manip à l'enregistreur de macro justement :)

Si tu as des soucis pour adapter ensuite, n'hésite pas à repasser par ici !

Rechercher des sujets similaires à "mettre rouge criteres"