Macro pour mise en forme conditionnelle
Bonjour,
Je cherche à créer une macro qui me permettrait d'effectuer automatiquement une mise en forme conditionnelle sur une cellule en fonction de la valeur qui se trouve dans la cellule située au dessus.
Concrètement, je voudrais que la cellule A5 soit colorée en rouge si la valeur de la cellule A4 est inférieure ou égale à 5 et en vert si elle est supérieure ou égale à 8.
Je voudrais que la macro fasse la même mise en forme sur la cellule H20 si la valeur de la cellule H19 respecte ces mêmes critères, ect.
Cependant, lorsque j'enregistre la macro et que je suis dans l'assistant de création de nouvelle règle, je sélectionne (avec ↑ ) la cellule située au dessus de la cellule active pour écrire ma formule (dans la capture ci-dessous il s'agissait de "=$H$19"), et c'est donc les coordonnées de cette cellule qui apparaissent dans le code de la macro. Or, je voudrais que la formule ne s'applique pas à chaque fois à cette cellule spécifique mais à la cellule au dessus de la cellule active, quelle qu'elle soit.
Que dois-je faire pour que ce soit la valeur de la cellule située au dessus de la cellule active, et non pas la valeur de "$H$19", qui soit prise en compte dans mes formules ">=8" et "<=5" ?
Je vous remercie par avance pour vos réponses :)
Bonsoir,
Une orientation : cellule active = Activecell, cellule une ligne au dessus par rapport à la cellule active = Activecell.Offset(-1)
@ bientôt
LouReeD
Merci LouReeD pour cette réponse. J'ai finalement trouvé une solution qui fonctionne en utilisant une variable String comme formule.
Je laisse ça ici si ça peut aider d'autres débutants qui galèrent
Sub FormatageTitre()
Dim cellule_active_colonne As String
Dim cellule_active_ligne As Byte
Dim cellule_dessus_colonne As String
Dim cellule_dessus_ligne As Byte
Dim formule1 As String
Dim formule2 As String
cellule_active_ligne = ActiveCell.Row
cellule_active_colonne = Split(ActiveCell.Address, "$")(1)
cellule_dessus_ligne = cellule_active_ligne - 1
cellule_dessus_colonne = cellule_active_colonne
formule1 = "=$" & cellule_dessus_colonne & "$" & cellule_dessus_ligne & ">=8"
formule2 = "=$" & cellule_dessus_colonne & "$" & cellule_dessus_ligne & "<=5"
Selection.FormatConditions.Add Type:=xlExpression, Formula1:=formule1
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlExpression, Formula1:=formule2
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End SubBonsoir,
Merci @ vous pour les remerciements !
Et peu importe le chemin, seule la destination et l'état d'arrivée compte !
@ bientôt
LouReeD