MFC en fin de VBA sur case mouvante [Résolu]

Signaler
Messages postés
29
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
17 janvier 2014
-
Messages postés
29
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
17 janvier 2014
-
Bonjour,

J'ai un classeur dans lequel chaque onglet représente un mois, ma macro est lancée lorsque l'onglet de Janvier est complété par l'utilisateur pour lui fournir un nouvel onglet vierge pour Février.
Dans chaque onglet il y a un tableau récapitulatif qui reprend les données des mois passés et affiche le mois en cours.

Ma macro crée l'onglet et je veux que dans la case du cumul du mois en cours, il y ai trois MFC, la première met la case du cumul en rouge si Z24<Y24 ou en orange si Z24=Y24 ou vert si Z24>Y24.
Simple a faire à la main, mais je veux que ce soit la dernière tâche de la macro.

Or la case de cumul est AA24 puis AA25 et les cases de validation sont Z24 puis Z25... je ne veux pas copier la création des trois règles 12 fois, donc je cherche à réduire mon code pour qu'il change la formule en fonction de la case où il se trouve.

Voici le code que j'utilise dans une macro secondaire, pour créer la mise en forme:
    Cells(ligne, 27).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="Z24 > Y24"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 5296274
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False


Comment rendre Z24 et Y24 variable?
J'ai testé Cells(ligne,colonne), en définissant ligne et colonne dans ma première macro, ou RC[-1], mais ils ne sont pas reconnus dans la fenêtre des MFC.

Merci d'avance de votre aide.

--

1 réponse

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
Dans :
Formula1:="Z24 > Y24"
on voit bien que cet argument est représenté par une chaîne de caractères ("Z24 > Y24" n'est rien d'autre qu'une chaîne de caractères).
Et donc :
soit toto la ligne en cause :
toto= 24
Formula1:="Z" & toto & " > Y" & toto
vaudra
Formula1:="Z24 > Y24"
Messages postés
29
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
17 janvier 2014

Merci,

Cela ce rapproche mais c'est pas tout à fait cela.
Dans la fenêtre MFC, la macro met ="Z25 > Y25" et non =Z25 > Y25
Donc j'ai bricolé et il manque un = que j'avais déjà oublié dans mon premier post.
alors la bonne formule cela fait Formula1:="=Z" & ligne & " > Y" & ligne

Bonne soirée et bon we.