Prbl MFC changement des priorités après suppression de ligne

Salut salut !

J'écris ce post aujourd'hui car il se passe un truc étrange avec une de mes MFC et j'aurai voulu savoir si ça vous était déjà arriver et s'il y a un moyen d'y remédier.

J'ai une MFC de doublons sur l’ensemble de la colonne A et une autre MFC de doublons aussi sur la colonne A mais admettons de la ligne 1 à la ligne 200. J'ai placé la MFC partielle avant la complète ET du coup quand je supprime une des lignes de ma MFC partielle cette dernière ce place après la MFC totale ce qui fait que je dois à chaque fois la remonter dans la gestion des règles ...

Une solution ?

Edit : je met quand même un fichier exemple au cas où... si on supprime la ligne 2 la MFC partielle passe derrière l'autre ~

9fichier-ex.xlsx (8.26 Ko)

Bonjour,

ahhhhhh les MFC, j'ai le sentiment qu'excel fait un pu comme il veut, souvet à les multiplier à l'infini, parfois comme ici à rebattre les cartes !

J'en arrive à supprimer les MFC et les recréer proprement en VBA, d'autant que les MFC multiples ralentissent excel.

Sub MFC(depuis As Long, jusque As Long)

    Cells.FormatConditions.Delete

    With Columns("A:A")
        .FormatConditions.AddUniqueValues
        .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).DupeUnique = xlDuplicate
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent2
            .TintAndShade = -0.249946592608417
        End With
    End With

    With Range("A" & depuis & ":A" & jusque)
        .FormatConditions.AddUniqueValues
        .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).DupeUnique = xlDuplicate
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent2
            .TintAndShade = 0.599963377788629
        End With
        .FormatConditions(1).StopIfTrue = False
    End With

End Sub
Sub test()
    MFC 1, 12
End Sub

L'autre solution serait de créer 2 MFC qui ne recouvrent pas ls mêmes plages, mais plus difficile à faire.

Coucou Steelson, merci pour ton retour !

Je ne peux pas avoir 2 plages différentes malheureusement.

J'ai jamais fait de VBA je sais juste copier les codes tu peux m'expliquer ce qu'il faut que je modifie stp ?

Tu copies le code en effet, ensuite il faudrait connaître quelles sont les plages qui doivent être soumises à la règle "limitée". As-tu un exeemple plus complet ? comment est délimitée la zone ?

Du coup j'ai compris où ce situais la plage à changer !Et aussi quoi mettre au début.

Tu peux m'expliquer ce qu'il faut modifier pour les couleurs stp ? Je suppose que c'est le "TintAndShade" ? et du coup la suite de chiffre détail la couleur ? si on veux la changer comment savoir qu'elle suite mettre ? (tout ca tient de ma supposition je suis peut être a côté de la plaque ^^)

debut, cela peut être 1 pour la première ligne ... ou n pour la nième ligne

pour les couleurs, c'est simple, tu refais une MFC en enregistrement de macro, et tu auras les valeurs

j'avoue que c'est un pu sec comme explication mais je ne sais pas quel est ton niveau

J'ai aucun niveau eheh enfin je sais enregistrer une macro a la limite (normalement)

J'y suis arrivé avant la pose déj' et la j'y arrive plus y'a une erreur j'ai voulu réessayer voir si j'avais bien compris >.<

er err

Je pense que j'y arriverai pour le changement de couleur j'ai tester et c'est similaire à l'écrit du VBA que tu m'as transmis. Par contre j'arrive pas a débugué >.<

C'est une erreur de ma part, enlève Selection mais laisse le point juste après

Idem pour le deuxième bloc d'instructions.

Coucou !

Du coup j'ai repris le code en enlevant Selection et j'ai modifié les couleurs et ca fonctionne merci !

Sub MFC()

    Cells.FormatConditions.Delete

    With Columns("A:A")
        .FormatConditions.AddUniqueValues
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).DupeUnique = xlDuplicate
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
        End With
    End With

    With Range("A1:A2119")
        .FormatConditions.AddUniqueValues
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).DupeUnique = xlDuplicate
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
        End With
        .FormatConditions(1).StopIfTrue = False
    End With

End Sub

Par contre ca me supprime les autres MFC que j'avais sur la feuille
Du coup j'ai tester de coder une MFC à suivre :

Sub MFC()

    With Columns("A:A")
        .FormatConditions.AddUniqueValues
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).DupeUnique = xlDuplicate
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
        End With
    End With

    With Range("A1:A2119")
        .FormatConditions.AddUniqueValues
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).DupeUnique = xlDuplicate
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
        End With

    With Columns("E:E")
        .FormatConditions.Add Type:=xlTimePeriod, DateOperator:= _
        xlLast7Days
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 5263615
            .TintAndShade = 0
        End With
        .FormatConditions(1).StopIfTrue = False
    End With

End Sub
code mfc

J'ai pas dû faire comme il aurait fallu il manque un withapparemment tu peux m'expliquer stp
On pourra pas m’enlever le fait que j'ai essayer Mais faut que j'y arrive j'avais 13 MFC sur ma feuille

Il manque un End With avant Columns("E:E")

Pour préserver tes autres MFC, change ceci :

Cells.FormatConditions.Delete

en sélectionnant les cellules dont la MFC doit être effacée (delete), donc en remplaçant Cells par Range("___") ou Columns(_____)

Ah super ! merci

Rechercher des sujets similaires à "prbl mfc changement priorites suppression ligne"