XL 2016 Bloquer mise en forme conditionnelle (apres couper et tri)

neim

XLDnaute Junior
Bonjour,

Dans ce fichier, j'ai une mise en forme conditionnelle qui fait changer de couleur les lignes à chaque changement de refefrence (colonne B).

Mais lorsque j'execute la macro (qui coupe des lignes et tri) la mise en forme conditionnelle se modifie aussi et ne correspond plus à rien.

Y a t il une facon de "bloquer" la MFC ?

Merci
 

Fichiers joints

Ikito

XLDnaute Occasionnel
Bonjour,

A la fin de ta macro, supprime l'ancienne MEF et remets-en une nouvelle :

VB:
Sub MeFC()

With Sheets("Besoins").Range("A2:W15")            'Sélection des plages où doit s'appliquer la MeF
    'Supprime les MFC existantes
    .FormatConditions.Delete
    'Ajoute une condition (Vrai lorsque la cellule est non vide)
    .FormatConditions.Add Type:=xlExpression, Formula1:="=EST.IMPAIR($A2)"
    .FormatConditions.Add Type:=xlExpression, Formula1:="=EST.PAIR($A2)"

    With .FormatConditions(1)
        'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
        .Interior.Color = 16771071       '.Interior.ColorIndex = 15 'Gris
    End With
    With .FormatConditions(2)
        .Interior.Color = 15555555
    End With
End With

End Sub
Tu remarqueras que les couleurs que j'ai choisies sont magnifiques...
 

neim

XLDnaute Junior
Bonjour

Merci, c est vrai que les couleurs sont...éblouissantes :)

Par contre, j ai besoin de garder ma mise en forme conditionnelle sur la colonne "R" et que la colonne "P" soit en jaune. c'est possible avec ta macro ?
 

Ikito

XLDnaute Occasionnel
Re,

Tout est possible, la suite :

VB:
Sub MeFC()

With Sheets("Besoins").Range("A2:W300")            'Sélection des plages où doit s'appliquer la MeF
    'Supprime les MFC existantes
    .FormatConditions.Delete
    'Ajoute une condition (Vrai lorsque la cellule est non vide)
    .FormatConditions.Add Type:=xlExpression, Formula1:="=EST.IMPAIR($A2)"
    .FormatConditions.Add Type:=xlExpression, Formula1:="=EST.PAIR($A2)"

    With .FormatConditions(1)
        'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
        .Interior.ColorIndex = 50
    End With
    With .FormatConditions(2)
        .Interior.ColorIndex = 44
    End With
End With

Sheets("Besoins").Range("P:P").FormatConditions.Delete
Sheets("Besoins").Range("P:P").Interior.Color = 65535

With Sheets("Besoins").Range("R2:R200")            'Sélection des plages où doit s'appliquer la MeF
    'Supprime les MFC existantes
    .FormatConditions.Delete
    'Ajoute une condition (Vrai lorsque la cellule est non vide)
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="Retard livraison"
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="DATE 15 jours"
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="Retard composant"
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="Retard composant et livraison"
    'DATE 15 jours

    With .FormatConditions(1)
        'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
        .Font.ColorIndex = 3
        .Font.FontStyle = "Bold"
    End With
    With .FormatConditions(2)
        'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
        .Interior.ColorIndex = 30
        .Font.FontStyle = "Bold"
    End With
    With .FormatConditions(3)
        'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
        .Font.ColorIndex = 3
        .Font.FontStyle = "Bold"
    End With
    With .FormatConditions(4)
        'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
        .Interior.ColorIndex = 3
        .Font.FontStyle = "Bold"
    End With
End With

End Sub
 

neim

XLDnaute Junior
Merci,

effectivement on peut tout faire apparemment :)

j ai essaye cette version qui selmble fonctionner aussi (en gardant la mise en forme conditionnelle pour les 2 colonnes "R" & "P").

Par contre je ne comprend pas, je change le N° de couleur mais ca ne me donne pas du tout celle que j attend.

36 pour jaune pale
37 pour bleu pale

et toutes les lignes se mettent en rouge tirant vers le noir :

With Sheets("Besoins").Range("A2:O1000,Q2:Q1000,S2:W1000") 'Sélection des plages où doit s'appliquer la MeF
'Supprime les MFC existantes
.FormatConditions.Delete
'Ajoute une condition (Vrai lorsque la cellule est non vide)
.FormatConditions.Add Type:=xlExpression, Formula1:="=EST.IMPAIR($A2)"
.FormatConditions.Add Type:=xlExpression, Formula1:="=EST.PAIR($A2)"

With .FormatConditions(1)
'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
.Interior.Color = 36 '.Interior.ColorIndex = 15 'Gris
End With
With .FormatConditions(2)
.Interior.Color = 37
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas