Mise en forme conditionnelle-reglès qui se multiplient automatiq

Fermé
sita1 Messages postés 2 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 13 mars 2013 - 13 mars 2013 à 11:31
 max - 5 déc. 2022 à 17:20
Bonjour,

J'ai un tableau Excel avec une mise en forme conditionnelle pour laquelle j'ai sélectionné une plage (toute la colonne A) et mis plusieurs règles par exemple texte contenant A en rouge, texte contenant B en vert et ainsi de suite... Par contre quand je fais copier/coller ou que j'insère une nouvelle ligne cela me rajoute une nouvelle règle de mise en forme conditionnelle et change la plage de la règle déjà existante. Comment éviter cela car si à chaque fois que je rajoute une ligne cela crée une nouvelle règle je me trouve à la fin avec 200 règles et ça fini par plus marcher du tout....
Deuxième question : est-il possible d'avoir une sorte de légende pour les mise en page conditionnelles ? C'est-à-dire d'avoir des cellules en modèle et qu'une formule fasse en sorte qu'à chaque fois que le texte « A » est dans une cellule cela prenne la mise en forme de la cellule de référence dans la légende.

2 réponses

via55 Messages postés 14488 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 23 octobre 2024 2 734
13 mars 2013 à 12:44
Bonjour

Une solution : Faire appliquer la mise en forme conditionelle non pas à la plage mais à toute la colonne ( en se positionnant sur la lettre de la colonne) la formule dans le gestionnaire de regles sera alors =$A:$A
un rajout de ligne ne rajoutera pas de formule

Pour les cellules légendes on peut procéder de lamême manière :
sur une autre feuille créer autant de colonnes et de règles appliquées à la colonne entière que de modèles désirés

Pour copier la mise en forme d'un modèle se positionner sur l'en tête de colonne
prendre l'outil de recopie de mise en forme (le pinceau) et revenir sur la feuille 1 et cliquer sur l'en tête de la colonne où appliquer la mise en forme

Cdlmnt
1
sita1 Messages postés 2 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 13 mars 2013
13 mars 2013 à 16:45
merci beacoup pour ta réponse! désolé je pense que je me suis mal exprimé. en fait c'est bien à toute la colonne que j'applique la mise en forme conditionelle et j'ai bien $A: $A dans le gestionnaire des regles... mais ça ne fonctionne pas. entre temps j'ai remarqué que dans excel 2007 sous XP ça ne pose aucun problème mais avec Excel 2010 ça multiplie les formules....

pour les cellules de reference... j'ai pas compris :-/
0
via55 Messages postés 14488 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 23 octobre 2024 2 734
13 mars 2013 à 18:51
Ok j'ai testé sur 2007 ça marche pour les colonnes mais pas pour les plages
par contre je n'ai pas 2010 !
Pour les cellules de référence je te disais d'en faire une par colonne dans une autre feuille et de copier le mise en forme de ces colonnes pour les appliquer dans la 1ere feuille mais si Excel 2010 multiplie les formules dans tous les cas ça ne va pas régler ton problème
Il faudrait sans doute abandonner la MFC et passer par une mise en forme par macro en VBA

Voici une proposition :

Dans la colonne A de la Feuil2 tu rentres toutes tes valeurs et tu colorie chaque case ce seront les cellules de références

Tu ouvres l'editeur (ALT F11) et tu selectionne Feuil 1 et dans la fenetre de droite tu rentres e code suivant :

Dim c(50) as integer 'Dimensionne un tableau de 50 cases pour les couleurs à adapter si necessaire

Sub codescouleur()
der2 = Sheets("Feuil2").Range("A1").End(xlDown).Row 'derniere ligne vide colonne A Feuil 2
For n = 1 To der2
c(n) = Sheets("Feuil2").Range("A" & n).Interior.ColorIndex ' insere le code couleur de chaque cellule dans un tableau
Next
der1 = Sheets("Feuil1").Range("A1").End(xlDown).Row ' derniere ligne vide colonen A Feuil1
For n = 1 To der1 'boucle sur les lignes Feuil 1
For x = 1 To der2 ' boucle sur les lignes Feuil 2 et si valeurs correspondent applique la couleur
If Sheets("Feuil1").Range("A" & n).Value = Sheets("Feuil2").Range("A" & x).Value Then MsgBox ("OK"): Sheets("Feuil1").Range("A" & n).Interior.ColorIndex = c(x): Exit For
Next x
Next n
End Sub

Chaque fois que tu appelleras la macro les cellules de la colonne A de la Feuil 1 seront recoloriées en fonction des modèles de la Feuil 2 (que tu peux modifier à volonté)

Cdlmnt
0

Bonjour,

Trouvé sur un autre forum (et testé car j'ai le même pb), il faut faire un collage spécial (valeur ou formule selon le cas).

Bonne journée.

0