Format conditionnel

[Résolu]
Signaler
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
-
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
-
Bonjour,

Ce n'est pas un problème de langage VBA, mais comme je sais qu'il y a ici des personnes fortiches avec Excel, je me permet d'exposer mon cas.

Je collationne des données météo et dans la colonne G il y a la vitesse du vent et dans la colonne I la direction.

5.8 N
6.3 NO
4.8 N

J'aimerai que lorsque la condition est vrai, ici la vitesse maxi de 6.3, la cellule de la direction soit également mise en forme.

J'ai entré la formule matricielle : ="{G3:G19}=M40"
où M40 est la cellule recevant la valeur maxi de la colonne G (ainsi toutes les vitesses égales au maxi sont colorées) mais cette formule n'agit pas sur la cellule de la direction.
Quelle est donc la formule magique ? si il y en a une !

Merci d'avance.

Cheyenne

23 réponses

Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

> ucfoutu, Hé, excuses-moi, mais j'ai cru que tu avais remarqué qu'il y avait le Min et le Max car dans un post j'avais colorié le Min en Bleu et le Max en rouge, le noir étant l'intermédiaire. Non, rassures-toi, je ne désire rien d'autre.

> Merci CerberusPau, mais ce n'est pas cela.
La ligne à colorier n'étant pas toujours la même car les données sont actualisées régulièrement.
Pour la recopie, j'avais déjà fait une macro qui appelle le collage spécial et qui colle juste le format dans toutes les feuilles puisque que l'on ne peut pas recopier par menu un format d'une feuille à l'autre.
Sinon c'est fastidieux de tout faire manuellement, d'autant plus que pour chaque colonne (il y en a 10) les couleurs de fond et de police sont différentes pour les Min et Max. Il y a 8 feuilles avec 10 colonnes et ce rien que pour le tableau principal !
Les 5 continents + France, USA et Canada.

J'ai trouvé :
Si vent en colonne G et direction en colonne I :
($I1:$I50)$M$40 où M40 est le Min colonne G
($I1:$I50)$M$41 où M41 est le Max colonne G

Merci à tous de vous êtes penché sur le problème et bon week-end.

Cordialement de Cheyenne

Salut cheyenne,
je sais qu'il y a ici des personnes fortiches avec Excel

Tu fesais allusion à quelqu'un? ucfoutu vient faire un tour ici...

Il y a un "truc" que j'ai pas trop compris tu cherches la valeur la plus grande de la colonne G, pas le 6.3?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

Donc, si je n'ai pas été assez clair, il s'agit de colorier une cellule dans la colonne I si une condition se trouve remplie dans la colonne G. D'où l'essai d'une formule matricielle.

Cheyenne
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour acive,

Désolé de ne m'être pas fait comprendre.

Non, la valeur maxi (ainsi que la mini) de la colonne G, je les 'ai.
Ce que je voudrais c'est que la cellule adjacente (dans la colonne I) soit mise en forme également.

2.8 N
5.8 N
6.3 NO
4.8 N

Doit devenir
2.8 N
5.8 N
6.3 NO
4.8 N

Ok ?

Cheyenne

Oui, j'avais compris et je cherche... je cherche...
On va y arriver, mais moi et le VBA...



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Pour récupérer la max et min c'est facile:
Range("M40").Value = Application.WorksheetFunction.Max(Range("G:G"))

Maintenant il faut connaitre sa ligne...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

Ce que tu me proposes c'est pour une macro, ça je sais faire... (merci quand même).
Ce que je souhaite c'est cette formule 'magique' pour une règle de mise en forme conditionnelle dans Excel 2007.

Cordialement,

Cheyenne

Re:
Ok, déjà pour la macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Range("M40").Value = Application.WorksheetFunction.Max(Range("G:G"))
   For i = 1 To ActiveSheet.Cells(ActiveSheet.Rows.Count, "G").End(xlUp).Row
      If Range("G" & i).Value = Range("M40").Value Then
         Range("G" & i & ":I" & i).Font.Color = vbRed
      Else
         Range("G" & i & ":I" & i).Font.Color = vbBlack
      End If
   Next i
End Sub

Ca fonctionne bien.
Pour la formule 'magique' je vais chercher encore...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,

Je pense qu'il faut utiliser la fonction DECALER pour vérifier si la colonne à gauche contient la valeur de la cellule "témoin" M40

Mais je reviens d'un repas bien arrosé et ne suis pas certain d'être en parfaite "forme"


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

Le but (si celui-ci n'avait pas été compris) :
Colorer une cellule d'une colonne si l'une des cellules d'une autre colonne remplit une condition.

Si dans la colonne X la cellule de la ligne 5 est mise en forme automatiquement, alors la cellule de la colonne Y (ligne 5) doit l'être aussi.

@+ Cheyenne
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Donc si DECALER(0;-1) contient la valeur de M40


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Salut Uc, bienvenue je suis à l'apéro aussi

Mais cheyenne veut une formule 'magique'...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Re:
J'ai vuCE LIEN il doit y avoir un moyen autre qu'une macro...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

Merci à vous deux pour les réponses...

>acive, ok pour le code de la macro (mais je n'en ai pas besoin.. arghhh jamais content le Cheyenne !!!)
Au risque de me répéter, c'est pour une mise en forme conditionnelle, donc automatique, mais j'ai lu que tu cherchais la formule 'magique'.

> ucfoutu, je te souhaite une bonne digestion et de mon côté je vais me pencher sur la fonction DECALER.

Bonne nuit,

Cheyenne
Messages postés
377
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
22 août 2018

Bonjout,

Euh, j'ose...

Si je comprends bien dans ton exemple

5.8 N
6.3 NO
4.8 N

Tu veux que NO soit aussi en rouge ?

Par ce que ça, on peut le faire avec la mise en forme conditionnelle de la cellule contenant NO.

Pourquoi faire compliqué? Mais peut-être que je n'ai pas bien saisi...

Cordialement
Rataxes64

Salut CerberusPau,
C'est exactement ça... (euh... je crois)
Sauf que je suis nul en excel...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Coucou,
je sors à peine de mon sommeil.
Par ce que ça, on peut le faire avec la mise en forme conditionnelle de la cellule contenant NO.

Le big problème est que :
- la direction correspondant à la vitesse maxi n'est pas forcément toujours NO
- des cellules contenant NO vont devenir coloriées alors qu'elles ne correspondent par à la vitesse maxi



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bon..
Le café a un peu dissipé la "brume".
Je ne comprends pas la raison de l'utilisation d'une cellule tremplin (ta M40), mais peu importe.

Voici un petit test/exemple que je viens de faire :
1) en colonne L :
L1MAX($L$1:$L$10)
s'appliquant à : =$L:$L
2) en colonne M ==>> exactement la même
L1MAX($L$1:$L$10)
mais s'appliquant à : =$M:$M

et j'ai bien :
- ma MFC de la colonne L pour cellule = max de ligne 1 à 10 de colonne C
- ma MFC de la colonne M pour cellule en regard de la cellule de gauche frappée par la MFC
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Attention, hein :
Quand je dis "exactement la même formule" c'est bien exactement la même (par copier/coller) et non "de nature identique"
Seule diffère la rubrique "s'appliquant à" (=$L:$L pour l'une et =$M:$M pour l'autre)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Mais (mais je pense que tu avais compris) si tu tiens vraiment à ta cellule tremplin M40, alors :

MFC de ta colonne G (sélectionnée):
formule =G1=$M$40
s'appliquant à : =$G:$G

MFC de ta colonne I(sélectionnée):
formule =G1=$M$40
s'appliquant à : =$I:$I

Bien évidemment : si pas toute la colonne, adapte par exemple $G:$G en restreignant à une plage, genre $G$3:$G$21 (idem pour colonne I)
Tous mes tests sont chez moi concluants et je pense que tu as tout, maintenant.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient