Mise en forme conditionnelle sous vba

Sly le globe trotter

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à appliquer via vba des mises en forme conditionnelles. N'ayant jamais utilisé la fonction .FormatConditions, je suis complètement perdu malgré Google et l'enregistreur de macro :D

Pourriez-vous svp m'aider à mettre au point le code correspondant à mon besoin ?

Ce besoin, le voici :
Je dispose d'une colonne dans la quelle j'ai des données. Sous mon tableau, une référence standard et une tolérance. L'idée est de mettre la police de la cellule en rouge en fonction du résultat de deux conditions.

Le type de règle que je souhaite appliquer est :
Appliquer une mise en forme uniquement aux cellules qui contiennent

Descriptions des règles :
Valeur de la cellule, inférieure à,
Code:
=SI(E12<>"";SI(E13<>"";E12-E13;10000);10000)
Valeur de la cellule, supérieure à,
Code:
=SI(E12<>"";SI(E13<>"";E12+E13;10000);10000)
Je souhaite rendre les cellules E12 et E13 variables.

J'ai utilisé le code suivant :
Code:
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="=SI(wksht.Cells(k+4, m) <>"";SI(wksht.Cells(k+5, m)<>"";wksht.Cells(k+4, m)-wksht.Cells(k+5, m);10000);10000))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Color = -16776961
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=SI(wksht.Cells(k+4, m) <>"";SI(wksht.Cells(k+5, m)<>"";wksht.Cells(k+4, m)+wksht.Cells(k+5, m);10000);10000))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(2).Font
.Color = -16776961
.TintAndShade = 0
End With
Selection.FormatConditions(2).StopIfTrue = False

mais il plante à la première ligne...

Merci bcp pour votre aide
 
Dernière édition:

Statistiques des forums

Discussions
314 022
Messages
2 104 732
Membres
109 114
dernier inscrit
ibrababa1957