Mise en forme par année via VBA

Bonjour à tous,

Je suis novice en VBA, et je ne parviens pas à trouver de solutions pour arriver à faire ce que je veux.

Je suis en train de mettre en place un tableau de bord de suivi de projets, sous un format type Gantt. J'ai un modèle (fait manuellement) du résultat que j'aimerai atteindre.

Pour l'instant, mon fichier ressemble à l'image 1, avec au-dessus de chaque date l'année correspondante.

1

L'objectif est que chaque année n’apparaisse qu'une fois, centrée sur les colonnes concernées, et que le fond alterne entre vide et gris.

2

J'ai déjà essayé de passer par une mise en forme conditionnelle pour les années paires ou impaires, mais si deux années paires se suivent ça ne marche pas.

Si quelqu'un s'est déjà retrouvé devant ce problème, ou a des idées à me faire tester je suis preneuse

Merci d'avance !

Bonjour

Je ne vois pas beaucoup de solutions pour répondre à ton problème !

Il y a peut-être une piste néanmoins.

Si tu peux te permettre d'utiliser une ligne (éventuellement masquée) tu peux t'en servir pour effectuer "disons" un calcul intermédiaire.

Supposons les années situées en ligne 9. Sur la ligne 8 (éventuellement masquée disais-je) tu utilises la formule suivante :

=SI(L(1)C="";LC(-1);LC(-1)+1)

ET tu peux ensuite appliquer la MFC suivante pour le "grisé"

=MOD(L8C;2)=0

ou son inverse

=NON(MOD(L8C;2)=0)

selon ce que tu veux "griser"

Attention la cellule de la ligne 8 doit obligatoirement être saisie manuellement à 1. Toutes les autre "années" seront "automatiquement grisée" en fonction du changement d'année !

Attention encore cela suppose aussi qu'il n'y ait pas de cellules fusionnées sur la ligne des années. Il faut utiliser "centrer sur plusieurs colonnes" à la place de "fusionner et centrer !

Bonjour Gli73,

Merci pour ta réponse

Peux-tu juste me détailler ce que tu entends par L et C ? Dois-je mettre le numéro de ligne et de colonne?

=SI(L(1)C="";LC(-1);LC(-1)+1)

A quoi sert cette formule ?

Désolé je ne suis pas très calée en formule...

Merci d'avance !

Au final, j'ai réussi avec une formule à ne faire apparaître qu'une fois chaque année !

Mais je suis toujours bloquée sur la partie mise en forme avec le fond grisé une année sur deux...

Quelqu'un a une idée ?

Bonjour

Pour répondre à

Peux-tu juste me détailler ce que tu entends par L et C ? Dois-je mettre le numéro de ligne et de colonne?

=SI(L(1)C="";LC(-1);LC(-1)+1)

il s'agit de la notation L1C1 des formules. C'est à dire que je n'utilise pas lettres et chiffres mais tout en chiffres.

Je sais que beaucoup d'entre vous utilise la notation alphanumérique, mais je ne comprends pas pourquoi? Pour information je pense que la notation L1C1 est beaucoup plus simple à utiliser pour comprendre certaines formules. Et je suis absolument incapable de "traduire" cette notation que je n'arrive pas à comprendre. Je ne te propose pas de le faire moi, même je n'ai pas Excel sous la main aujourd'hui et de plus ma connexion étant très mauvaise, je ne peux pas te montrer comment passer de cette notation à l'autre par une simple figure. Il faut aller chercher du côté des "options de calculs" dans Excel. Mais il doit y avoir aussi de "nombreux fil" à ce sujet. Tente une recherche avec l'option "recherche" du forum en tapant pour élément à rechercher quelque chose du genre "L1C1"

Pour répondre maintenant à

Mais je suis toujours bloquée sur la partie mise en forme avec le fond grisé une année sur deux...

si tu trouves le moyen de passer en notation L1C1 les formules que j'ai proposé en respectant les conditions "en bleue" permettent d'y répondre et résoudre le problème des années "doubles"

Salutations,

Bonjour,

Je me suis renseignée sur la notation L1C1, j'ai donc compris ce que tu voulais dire ! Je suis en effet plus à l'aise avec l'alphanumérique car j'ai appris à manier Excel avec ça, donc j'imagine que chacun a sa préférence !

Entre temps, j'ai trouvé une autre solution, avec une ligne masquée =NbVal(ligne) - NbVide(ligne) et une MEFC paire / impaire !

Mais merci beaucoup de t'être penché sur mon problème et de m'avoir proposé des solutions

A bientôt !

Rechercher des sujets similaires à "mise forme annee via vba"