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

  • Initiateur de la discussion Initiateur de la discussion zephir94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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 :
[TABLE="width: 100%"]
[TR]
[TD="align: left"]Référence du développeur
Excel
[/TD]
[/TR]
[TR]
[TD="align: left"]FormatCondition.Formula1, Propriété
[/TD]
[/TR]
[/TABLE]
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 ...
 
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:
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
827
Réponses
10
Affichages
801
Réponses
1
Affichages
1 K
Retour