XL 2010 Interrompre MFC en VBA

jmh1

XLDnaute Occasionnel
Bonjour à tous

J'ai du code VBA qui applique 2 mises en forme conditionnelle dans une feuille de calcul.

Je voudrai que quand la 1ère MFC est vrai, la 2ème ne s'effectue pas. Mais je n'arrive pas à trouver la fonction pour cela.

Quelqu'un peut-il m'aider à modifier mon code. Merci pour votre aide.

VB:
'Mise en forme conditionnelle
    'Si cote NG
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
        Formula1:="=$A5+$B5", Formula2:="=$A5+$C5"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

    With Selection.FormatConditions(1).Font
        .Bold = True
        .Italic = True
        .Color = -16776961
        .TintAndShade = 0
    End With
    
    Selection.FormatConditions(1).StopIfTrue = True
    
    'Si cote hors limite de surveillance
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
        Formula1:="=$D5", Formula2:="=$E5"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0.599963377788629
    End With
    
Selection.FormatConditions(1).StopIfTrue = False
 

jmh1

XLDnaute Occasionnel
Bonjour Eric

ta solution ne change pas mon problème, dans un cas ma cellule à un fond orange puis une police rouge et dans le second cas, la police se met en rouge puis le fond est orange.

Moi, j'aimerai que si la condition 'Mettre la police en rouge' est vrai alors on ne teste pas la seconde MFC.

Une autre idée à mon problème ?

Merci
 

ellimac

XLDnaute Nouveau
Bonjour à tous

J'ai du code VBA qui applique 2 mises en forme conditionnelle dans une feuille de calcul.

Je voudrai que quand la 1ère MFC est vrai, la 2ème ne s'effectue pas. Mais je n'arrive pas à trouver la fonction pour cela.

Quelqu'un peut-il m'aider à modifier mon code. Merci pour votre aide.

VB:
'Mise en forme conditionnelle
    'Si cote NG
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
        Formula1:="=$A5+$B5", Formula2:="=$A5+$C5"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

    With Selection.FormatConditions(1).Font
        .Bold = True
        .Italic = True
        .Color = -16776961
        .TintAndShade = 0
    End With
   
    Selection.FormatConditions(1).StopIfTrue = True
   
    'Si cote hors limite de surveillance
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
        Formula1:="=$D5", Formula2:="=$E5"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0.599963377788629
    End With
   
Selection.FormatConditions(1).StopIfTrue = False



Bonjour,

Il suffit d'inverser :

Sub MFC()
'Mise en forme conditionnelle
'Si cote NG
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
Formula1:="=$D$5", Formula2:="=$E$5"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.599963377788629
End With

Selection.FormatConditions(1).StopIfTrue = False





Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
Formula1:="=$A$5+$B$5", Formula2:="=$A$5+$C$5"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

With Selection.FormatConditions(1).Font
.Bold = True
.Italic = True
.Color = -16776961
.TintAndShade = 0
End With

Selection.FormatConditions(1).StopIfTrue = True

'Si cote hors limite de surveillance

End Sub

Cordialement

Ellimac
 

Statistiques des forums

Discussions
311 740
Messages
2 082 041
Membres
101 879
dernier inscrit
Arthur M