MFC > traçage de bordures selon valeures cellules

Bonjour,

j'ai créé une MFC afin de tracer automatiquement des bordures si les libellés de cellules sont différents; ceci apportant de la lisibilité à mon tableau. (voir bordure rouge de l'exemple fourni dans le fichier joint).

=ET($A1<>"";$A1<>$A2)

Cela fonctionne bien; mais lorsque je supprime une ligne, la formule initiale est morcelée et il se créé automatiquement une seconde formule dans la MFC. Voir les feuille 1 et 2 du classeur; >dans la feuille 2, j'ai supprimé la ligne 9.

Comment faire pour que la MFC réactualise la formule initiale et n'en créé pas une seconde.

Merci pour votre aide.

26mfc.xlsx (81.86 Ko)

Bonjour,

Essaie avec

=ET($A1<>"";$A1<>DECALER($A1;1;0))

A+

Bonjour Frangy.

PARFAIT !!!!!!!!!!!!!!!!!!

Merci pour ton bénévolat efficace ... en heures SUP, s'il vous plaît !!!

Bon week-end.

Bonjour,

Le fractionnement d'une MFC est un phénomène inévitable lorsque tu supprimes ou insères des lignes...

Une solution est de recréer la MFC à chaque ouverture de classeur.

Procédure à placer dans le module ThisWorkbook :

Private Sub Workbook_Open()
    With [Tableau1].Offset(-1).Resize([Tableau1].Rows.Count + 1)
        On Error Resume Next
        .FormatConditions.Delete
        With .FormatConditions.Add(xlExpression, , "=et($A1<>"""";$A1<>$A2)")
            With .Borders(xlEdgeBottom)
                .LineStyle = xlSolid
                .Weight = xlThin
                .Color = vbRed
            End With
            .StopIfTrue = False
        End With
    End With
End Sub

Ici j'ai défini la plage concernée par la MFC à partir de ton tableau (puisque tu utilises des tableaux) mais tu peux la définir autrement...

Cordialement.

Bonjour "La Réunion" !!!

Merci pour cette précision.

Mais là, ce n'est plus de mon (faible) niveau ... Module ThisWorkbook ...???...

Bien cordialement.


MFerrand,

comment fait-on pour "agrandir" la zone destinée à la description de la règle d'une MFC ?

Par avance, merci.

Bien cordialement.

Bonjour,

ThisWorkbook est le module dédié au classeur. Tu te rends dans l'éditeur VBA (faire Alt+F11, ou onglet Développeur > Visual Basic).

Tu l'y trouveras sous ce nom dans le volet explorateur de projets à gauche. Tu double-clique dessus pour l'ouvrir, et tu y colles la macro, qui s'exécutera à chaque ouverture du classeur.

Pour modifier la zone d'application d'une MFC :

Manuellement, tu cliques sur MFC > Gérer les règles > tu repères la MFC concernée, et tu modifies la définition de la zone qui figure dans S'applique à (toujours mettre des références absolues dans cette définition).

Pour la macro, tu modifies la plage définie pour y ajouter un format conditionnel.

Comme je l'ai dit je me suis servi de ton tableau pour définir la plage dans la macro, les tableaux Excel étant automatiquement nommés. Le nom n'incluant pas l'en-tête, je l'ai décalée et aggrandie d'une ligne pour inclure l'en-tête que tu couvrait avec ta MFC.

L'avantage de cette méthode est que si tu aggrandis ou réduis ton tableau, la MFC s'ajustera (à l'ouverture du classeur) à la dimension du nouveau tableau sans que tu aies rien à faire.

[Si tu veux utiliser une définition de plage en utilisant les références de cellules, il faut préciser la feuille : Worksheets(...).Range(... ]

Cordialement.

Rechercher des sujets similaires à "mfc tracage bordures valeures"