Surlignage périodique absolu dans tableur (calc, excel, etc.)

ccciolll

Membre expert
Club iGen
Bonjour,

Le sujet du surlignage automatique a déjà été traité et solutionné (puis re-amendé et amélioré), mais dans une discussion générale sur excel, de plusieurs pages !

J'isole ici la solution qui me parait la plus appropriée, et je la montre dans Libre Office Calc (même si c'est quasi pareil que dans Excel à part le nom des menus et leur aspect).

Ainsi, ça facilitera le déterrage futur.

Donc le but ici est de mettre en place un surlignage fixe (par exemple en jaune, en gris, mais on fait comme on veut) dans un tableur, surlignage qui ne se déplace pas quand on applique un filtre auto (un peu comme si le surlignage était sur un calque inférieur au tableau et n'était pas affecté par les mouvements des cellules).
Ici je met un surlignage une ligne sur 4 (qui me parait le plus efficace pour permettre un bon repérage visuel sans trop charger la lisibilité) mais là encore, ça se change facilement.

On va utiliser la mise en forme conditionnelle (j'y viens plus loin).

Pour que la condition fonctionne, vous aurez besoin d'une colonne dont toutes les cellules sont remplies. Si c'est le cas de votre tableur, tant mieux. Sinon, ajoutez une colonne « inutile » dont toutes les cellules contiennent qqchose (un x, dans mon exemple).

Cette colonne dont toutes les cellules sont remplies sera la base de la condition. Appelons-là Colonne-base, considérons que c'est la colonne A et que vous démarrez le tableau à la ligne 1.

Allez sur la première cellule d'une des colonnes sur lesquelles vous voulez appliquer le surlignage périodique.
Puis dans les menu : format > formatage conditionnel > condition...

Dans condition 1, déroulant, le choix « la formule est », et dans le champ on mettra le code suivant
Bloc de code:
ET(NON(ESTVIDE($A1));MOD(NBVAL($A$1:$A1);4)=0)

Ensuite, en dessous, Appliquer le style, dans le déroulant, choix nouveau style, je vous laisse faire le style que vous aimez, dans mon exemple c'est un fond jaune.

Puis cliquez OK.

Ensuite, appliquer ce format à toutes les cellules voulues. Le plus simple, à mon avis, vous cliquez dans la cellule qui du coup apparait avec un liseré noir et un petit carré en bas à droite (une poignée) : étirez cette poignée sur toutes les cellules qui doivent avoir ce formatage conditionnel.
(alors évidemment, il est conseillé de créer le formatage conditionnel AVANT de commencer à remplir et personnaliser le tableur, sinon, la copie est plus compliquée, c'est un autre sujet).


Voici une illustration du résultat, version simple.

ecran 2018-11-19 à 11.12.42.png

La colonne « fixe » en texte rouge, c'est ma fameuse Colonne-base qui doit toujours être remplie.
Là, j'ai appliqué la condition sur ma Colonne-base ET sur ma colonne de résultats, mais je pourrais laisser la Colonne-base blanche si besoin.

Pourquoi cette Colonne-base aux cellules toutes remplies, me direz vous ?

Car si toutes les cellules ne sont pas remplies, ça déconne, voici ce que ça donne si je laisse des cellules vides dans cette Colonne-base.

ecran 2018-11-19 à 11.13.36.png

Le surlignement saute là où je laisse du vide.

Par contre, si je laisse des cellules vides dans la colonne de résultats (B), pas de souci, puisque c'est la Colonne-base (A) qui sert de base au remplissage conditionnel, voici un exemple :

ecran 2018-11-19 à 11.13.16.png

On voit que le surlignage reste régulier.


Voilà.
Si une ligne sur quatre ça ne vous plait pas, changez juste le 4 dans la fin de la formule !

Les $ (dollar) servent à indiquer une valeur fixe, car les autres valeurs s'adapteront lors du copier-coller des attributs.
Là aussi, si votre tableur (et surtout votre Colonne-base) débute en J13 au lieu de A1, remplacez les A par des J les 1 par des 13, et roule ma poule. Attention à ne pas effacer les dollars, c'est tout.

J'espère avoir été clair et assez accessible pour des débutants.

(mots clé : surligner excel automatique périodique jaune un sur trois sur quatre)
 
Et j'ajoute aujourd'hui une évolution de cette formule.
Imaginons que vous avez votre tableur comme j'ai montré ci-dessus, mais vous voulez par endroit surligner une ligne précise (attention, cette fois ci ce sera une ligne « mouvante » si je puis-dire, c'est à dire qu'en cas de filtrage, elle bougera). Sur les cases sans fond ça passe, mais sur les cases surligner, vous n'avez plus le pouvoir de changer le surlignage (ou surlignement, je sais pas trop le mot correct).

Eh bien on peut libérer cette possibilité, en modifiant légèrement le code. Il faut une deuxième colonne ajoutée, on va l'appeler Colonne-perso et je vais la placer en B

Le code devient alors
Bloc de code:
ET(NON(ESTVIDE($B1));MOD(NBVAL($A$1:$A1);4)=0)

Vous voyez le code, on a toujours le A pour la colonne Base qui doit tj contenir des cellules non vides.
Et le B c'est la colonne Perso.

Voici une illustration de l'effet obtenu.

ecran 2018-11-19 à 12.30.19.png

A, la colonne base, tj remplie de X (mais dans cet exemple, je ne lui applique pas le formatage conditionnel, juste pour rendre mon illustration plus claire, mais on pourrait tout à fait le faire).
B la colonne perso (j'explique plus loin)
Dans la colonne C la formule de tout à l'heure
Dans la colonne D la nouvelle formule (j'ai mis un fond vert pour la différencier)

La Colonne-perso doit être faite de cellules vides, et quand on met qqchose dedans (ici j'ai mis un V mais ça pourrait être ce qu'on veut), ça désactive le surlignement uniquement sur cette ligne, sans affecter la rythmique du reste.

J'ai surligné en rose, manuellement, les lignes 8, 8, 16 et 17 pour bien montrer la différence.

Ligne 8, le surlignement auto (jaune ou vert) prend le dessus sur le surlignement manuel (rose)
Ligne 9, comme il n'y a pas de surlignement auto, le surlignement manuel apparaît.

Ligne 12, j'ai un valeur en colonne B, donc le surlignement auto vert disparaît.

Et ligne 16, une valeur en colonne B, idem, le surlignement auto vert disparaît, et laisse alors apparaître le surlignement manuel en rose.

En ligne 17 j'ai aussi mis un v en colonne B.
Ici il n'a aucun effet, mais si je filtrais la colonne et que les résultats se déplaçaient (imaginez que j'aie mis des choses plus variées que tata tata tata), il pourrait en avoir et ainsi éviter que ma ligne rose devienne verte.

Voili voilou.