Vba excel lire les conditions d'une mise en forme dans une cellules

zephir94

XLDnaute Impliqué
Bonsoir à tous,

J'ai une question concernant les MFC.

créer des MFC dans une cellule j'y suis arrivé :

Code:
Range("O" & df).Select
 With ThisWorkbook.Worksheets(1).Range("O" & df)
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=ET(N" & df & "<=" & s & ")"
.FormatConditions(1).Interior.ColorIndex = 3
End With
  With ThisWorkbook.Worksheets(1).Range("O" & df)
.FormatConditions.Add Type:=xlExpression, _
 Formula1:="=ET(N" & df & " >= " & d & ";N" & df & "<" & X & ")"
.FormatConditions(2).Interior.ColorIndex = 46
End With
  With ThisWorkbook.Worksheets(1).Range("O" & df)
.FormatConditions.Add Type:=xlExpression, _
 Formula1:="=ET(N" & df & " >= " & X & ")"
.FormatConditions(3).Interior.ColorIndex = 4
End With
With ThisWorkbook.Worksheets(1).Range("O" & df)
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=ET(N" & df & "=" & e & ")"
.FormatConditions(4).Interior.ColorIndex = 1
End With

Mais peut on en Vba récupérer la valeur numérique pour laquelle une MFC est vraie dans une cellule ?
par exemple si :

si<5 alors cellule en rouge, je voudrais récupérer 5.
J'ai essayé comme ceci :

Code:
Cells(df, 15).Select
Set fgg = Cells.FormatConditions(1).AppliesTo.Cells(df, 15)
Formula = Application.ConvertFormula(Formula, xlA1, xlR1C1, , firstCell)
Formula = Application.ConvertFormula(Formula, xlR1C1, xlA1, , cellRange)

Mais ça ne fonctionne pas !

Merci par avance pour vos aides
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Vba excel lire les conditions d'une mise en forme dans une cellules

Bonsoir, zephir94.

L'aide sur la propriété Formula1 de l'objet FormatCondition (F1 dans l'éditeur VBA) nous dit :
Référence du développeur
Excel
FormatCondition.Formula1, Propriété
Cette propriété renvoie la valeur ou l'expression associée au format conditionnel ou à la validation de données. Il peut s'agir d'une valeur constante, d'une chaîne, d'une référence de cellule ou d'une formule. Type de données String en lecture seule.
Syntaxe
expression.Formula1
expression Variable qui représente un objet FormatCondition.
Exemple

Cet exemple montre comment modifier la formule du format conditionnel 1
appliqué aux cellules E1:E10 si la formule spécifie « inférieur à 5 ».
Visual Basic pour Applications
With Worksheets(1).Range("e1:e10").FormatConditions(1) If .Operator = xlLess And .Formula1 = "5" Then .Modify xlCellValue, xlLess, "10" End IfEnd With

Si ça peut vous aider ...
 

zephir94

XLDnaute Impliqué
Re : Vba excel lire les conditions d'une mise en forme dans une cellules

Merci Victore21,

J'ai bien lu avec F1 cette aide avant de poser ma question ! mais ça n'a pas répondu à cette dernière, je cherche à retrouver pour quelle valeur une MFC est vrai.

L'enregistreur de macro m'a donné ceci :

Code:
 Selection.FormatConditions(1).StopIfTrue = True
    Range("O12").Select
    Range("O11").Activate
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=ET(N11 >= 10)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ColorIndex = 4
        .TintAndShade = 0
    End With

ce que je recherche est :
"=ET(N11 >= 10)" soit 10

donc je me suis dis pourquoi ne pas récupérer la formule dans ce range !

Code:
y=Range("N11" ).FormulaR1C1Local

mais plouf ! pas de formule
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Vba excel lire les conditions d'une mise en forme dans une cellules

Bonjour zephir94, Patrick,

La MFC est créée sur la cellule O11, donc pour récupérer sa formule :

Code:
y = Range("O11").FormatConditions(1).Formula1
MsgBox y 'pour tester
A+
 

Discussions similaires

Réponses
2
Affichages
818

Statistiques des forums

Discussions
315 098
Messages
2 116 197
Membres
112 680
dernier inscrit
AKDS