Créer macro pour répéter mise forme cond.

Andropode -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Voici mon souci :

Un peu flémard, je souhaiterais reproduire la mise en forme conditionnelle appliquée en B9 et C9, à plusieurs voire à une cinquantaine de lignes ! Sauf que cette mise en forme dépend de la cellule au dessus d'elle (comme B9 et C9), et que cette mise en forme ne doit pas affecter la formule de la cellule. C'est pourquoi je ne peut étendre cette mise en forme comme on étend une formule (cela fonctionne pour la mise en forme mais la formule est modifiée).

Ya-t-il possibilité de créer une telle macro ?
Ou une autre solution existe-t-elle ?

Voici le classeur exemple : https://www.cjoint.com/?gsrMvMZe5v

D'avance merci !

A voir également:

5 réponses

Mister Canard Messages postés 512 Date d'inscription   Statut Membre Dernière intervention   1
 
J'ai pas testé, mais essaye de sélectionner toutes les cellules concernées par ta mise en forme conditionelle, et va dans le menu Mise en forme conditionelle et regarde si tu peux appliquer ta mise en forme a toutes les cellules en même temps.
0
Andropode
 
Cela fonctionne, j'ai déjà essayé, mais la condition est déterminée par une seule cellule. Or j'ai besoin que le test de chaque cellule se fasse par rapport à la cellule qui est placé au dessus d'elle.

Merci quand même.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonsoir,

Ta formule de MFC doit être en référence relative ligne.
Par exemple tu ne dois pas avoir
=$F$10
mais
=$F10

Le $ rend la référence absolue et fera toujours référence à cette ligne ou cette colonne (et non pas à celle de dessus ou celle de gauche par exemple).
eric
0
m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
Bonjour,

Un exemple :

Sub format_cond()
With Sheets("Feuil1").Range("maplage")
    .FormatConditions.Add Type:=xlExpression, Formula1:="=L(-1)C>LC"
    .FormatConditions(1).Interior.ColorIndex = 3
End With

End Sub


Cette macro met la couleur rouge pour chaque cellule de la plage "maplage", dont la valeur est inférieure à la valeur du dessus.

A toi de modifier la formule selon ce dont tu as besoin.

m@rina
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Andropode
 
Bonjour,

Désolé mais ta macro doit comporter une erreur. Excel m'affiche erreur d'exécution '1004'

Que dois-je modifier ?
0
madeliocustom Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   13
 
Bonjour Andropode,

l'exemple de m@rina me semble tres bien fonctionner (sur 2003), mais bien sur faut que tu l'adapates un peu, par exemple en évitant d'avoir dans ta plage (range) des données non numeriques --> sinon erreur 1004

A+
Madelio
0
Andropode
 
Bonjour Madelio,

En effet, j'avais oublié le "=" en début de plage.
Cependant j'ai toujours une erreur 1004 dont le débogage me surligne :

.FormatConditions.Add Type:=xlExpression, Formula1:="=L(-1)C<LC"

Ai-je encore oublié de modifier quelque chose ? (je débute tout juste en programmation Excel)

Merci
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Ou une autre solution existe-t-elle ?
Vu ton besoin tu n'as pas vraiment besoin de macro...
Lis mon message du 18 à 20:51, maitriser les références relatives/absolues est nécessaire sur excel.

eric
0
Andropode
 
Bonjour bonjour !

Pardon de ne pas avoir commenté ton message du 18, j'avais essayé ta méthode mais sans que cela marche. Je viens de comprendre : il faut étendre la mise en forme comme on étend une formule SAUF qu'il faut voir le petit carré "option de recopie incrémenté" et cocher "ne recopier que la mise en forme". Et avoir =F$10, pour bloquer la ligne 10.

Merci à tous !
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
- ou bien sélectionner toutes les cellules avant de faire la MFC, en considérant que les références saisies dans la formule de la MFC doivent être pour la cellule active de la sélection
- ou bien utiliser l'outil 'pinceau' qui ne recopie que les mises en forme
0