MFC qui se découpe suite à insertion de lignes

Bonjour le forum,

Ma question concerne les MFC. J’ai une MFC qui fonctionne très bien mais ce que je ne comprends pas c’est pourquoi lorsque j’insère des nouvelles lignes dans la plages initiale de la MFC initiale cette dernière se découpe en plusieurs autres MFC.

Cela ne change rien au bon fonctionnement mais je me retrouve avec un nombre de plus important de MFC.

La question est comment si c’est possible je peux rester avec le format de la MFC de départ qui couvre toutes la plage du tableau.

Exemple :

MFC de départ :

avant insertion

MFC après insertion d'une ligne en L4787

apres insertion

Merci pour une éventuelle explication sur ce phénomène.

Je rajoute les fichiers exemples que j'ai mis dans le texte pour plus de lisibilité en PJ.

avant insertion apres insertion

Bonjour,

C'est une excellente raison pour éviter de multiplier ces MFC...

A+

C'est justement ce que je ne veux pas : multiplier mes MFC. Mais elles le font tout seules lorsque j'insère des lignes.

Moi j'ai une méthode radicale c'est zéro MFC !

J'en ai une autre tout aussi radicale : zéro insertion de ligne !

Après pour répondre à la question de départ.

"La question est comment je peux rester avec le format de la MFC de départ"

En supprimant plus ou moins temporairement les MFC et en les réinitialisant "à la demande." (par macro)

Ma réponse est volontairement ambiguë et ouverte car il n'existe pas de solution polyvalente : Les MFC étant rarement utiles en permanence mais souvent maintenues pour des raisons esthétiques, il faut s'adapter aux situations :

- Si c'est l'esthétique qui prime un rafraichissement permanent est indispensable. (Ex: Un calendrier ou tu ne peux guère envisager de mettre en évidence les WE une ligne sur 2)...) Mais si on y réfléchi bien une MFC pour les WE ou les fériés ne sert à rien vu que les WE et les fériés ne changeront pas même pour les siècles à venir, il est toujours possible de supprimer les MFC et de colorer ces jours "en dur."

- Si c'est l'informatif en temps réel, il suffit de poser la MFC avant lecture (sur activation de la feuille ou du classeur par exemple)

ou sur un évènement discriminant : Si tu fais une vente tu diminues ton stock si ta MFC doit alerter sur un stock minimum il faut rafraichir à chaque vente...

-Si c'est informatif mais pas nécessairement en permanence je supprime. Après, tout le problème est de savoir comment on remplace efficacement. Maintenir en place une MFC qui va se propager en des centaines ou milliers de bribes pour une utilité d'1/ 10 000 consultations, -voire aucune- dans beaucoup de cas est un gachis (car ces MFC ne sont pas sans conséquence sur les performances de ton classeur...)

Donc je n'ai pas de réponse toute faite. Et ton image ne me permet pas de me faire une idée. Après tout dépend de tes habitudes de travail. Il y en a qui sont viscéralement opposé à toute utilisation des macros et dont la simple évocation de VBA provoque des aigreurs...

Moi personnellement ce serait plutôt le contraire et voire une feuille ne me semble pas vraiment utile. L'affichage d'un Etat me semble souvent préférable....

Entre les 2 il y a tout un monde de possibilités...

A+

Salut galopin01

Merci pour cette longue explication. Dans mon cas c'est la phrase "- Si c'est l'informatif en temps réel, il suffit de poser la MFC avant lecture (sur activation de la feuille ou du classeur par exemple)..." qui me concerne mais je ne comprends pas ce que tu veux dire par "poser".

La MFC me permet de voir si un candidat a réussit ou non une formation en mettant "OUI" ou "NON" dans la colonne BA ce qui me colore en vert foncé ou en rouge la colonne J correspondant à la ligne ou j'ai inscrit "OUI" ou "NON". Je ne voulais pas spécialement le faire avec une macro mais je pense que je vais revoir ça pour éviter cette "multiplication" de MFC .

Cordialement

Je ne suis pas un spécialiste de ce genre de sport vu que j'évite complètement ces MFC

Ça suppose que tu détruis systématiquement toutes les MFC de la feuille et que ta macro les recrée.

Comme c'est assez mal foutu je ne le fais jamais :

Je préfère faire une macro qui fait le même boulot mais sans MFC...

Mais pourquoi donc utiliser une MFC puisque celle ci se borne à évaluer la colonne BA ? Autant utiliser directement le filtre Oui ou Non et tu fais l'économie d'une mise en forme inutile...

Enfin bon... La première macro supprime les MFC et la seconde les remets en place.

Sub SupprimeConditionsFeuille()
    Feuil1.Cells.FormatConditions.Delete
End Sub
Sub NewMFC()
   With Range("$J$3:$J6000")
       .FormatConditions.Add Type:=xlExpression, Formula1:="=$BA3:$BA6000=""NON"""
   With .FormatConditions(1)
      .Interior.ColorIndex = 3
   End With
       .FormatConditions.Add Type:=xlExpression, Formula1:="=$BA3:$BA6000=""OUI"""
   With .FormatConditions(2)
      .Interior.ColorIndex = 4
   End With
   End With
End Sub

Nota : Si tu n'as pas besoin des 6000 liges il serait préférable d'utiliser une variable qui évalue quelle est la dernière ligne...

A+

Salut galopin01

J’avais fait une petite macro en remplacement de la MFC qui fonctionnait bien mais le problème que j’ai rencontré c’est si je voulais supprimer le « OUI » ou « NON » de la colonne « BA » la cellule restait de la même couleur (vert ou rouge) et ça c’est gênant.

J’ai regardé ta macro qui elle me plait très bien. J’ai voulu l’adapter comme tu me le conseilles avec une variable mais je n’y arrive pas. C’est surement une erreur de guillemet ou de parenthèse mais je sèche.

Je te mets la macro que j’ai faite (pour info) et ta macro modifiée pour me dire si tu vois où est le problème.

Ta macro modifiée :

ta macro modifiee

Ma macro pour info :

ma macro pour info

Pour mon info tu peux me dire comment tu fais pour copier tes lignes de code dans ton message ? A chaque fois je m’embête à faire des copies écran ce qui est lourd.

Cordialement

Pour passer du code faire un Copier / Coller

Sélectionner le code que tu viens de coller puis cliquer sur le symbole </> au dessus.

Il va s'encadrer de balises "CODE" et ça sera impec.

La soluce :

   With Range("$J$3:$J" & derLigne)
       .FormatConditions.Add Type:=xlExpression, Formula1:="=$BA3:$BA" & derLigne & "=""NON"""

Ok ?

Merci. Depuis une heure je jonglais entre les "", les () et les & mais sans résultat. Je pensais bien que l'erreur été dans ces sigles.

Je pends ta macro modifiée et laisse tomber la mienne.

Je mets le sujet en résolu.

Merci également pour la manière d'insérer du code dans les messages.

Cordialement.

Rechercher des sujets similaires à "mfc qui decoupe suite insertion lignes"