Rapport de message :*
 

Re: code couleur

Titre du sujet : Re: code couleur
par JeanMarie le 25/12/2008 09:52:23

 Bonjour Claude, Skoobi

J'espère que le réveillon c'est très bien passé, et que ce matin n'est pas trop dur.

Claude, je me permet de te répondre, étant un p'tit peu à la base de ce que ta proposé Skoobi.

La fonction LIRE.CELLULE est une fonction des anciens macros XL4, c'était le premier langage de programmation des macros, ensuite VBA a été ajouté à la suite Office, et suppléé ce langage.
Mais, ces anciennes fonctions sont toujours utilisable dans les feuilles de type "Macro MS Excel 4.0" et "Macro Intl MS Excel 4.0". (accessible par Clic droit sur un onglet de feuille). En plus, on a la possibilité d'utiliser ces fonctions dans la boîte de dialogue pour définir d'un nom. (un grand Merci à Celeda).

Dans ton office "standard", tu ne peux avoir d'aide sur ces anciennes fonctions de macro, Microsoft l'installant plus le fichier, mais il est toujours disponible sur leurs site, je ne vais pas te donner le lien, il faut savoir à un moment donné vivre avec son temps.

Pour quand même aller plus loin sur la proposition de Skoobi, cette fonction retourne une information sur une cellule.
L'information retournée dépend de la valeur du premier argument, il y a 66 valeurs possible. (je ne vais pas non plus te les lister, pour le même motif).
La cellule est déterminée par son deuxième argument.

Dans la proposition de Skoobi, la référence est détermine par calcul (ça son importance). DECALER permet de retourner une référence de cellule en fonction d'une référence de départ, et d'un décalage vertical et horizontal.

Perso, je simplifierai la formule par =LIRE.CELLULE(63;DECALER(B5;;-1)), en ayant au préalable sélectionné la cellule B5, cela a aussi son importance. DECALER(B5;;-1), retournera la référence de la cellule A5.

Un autre point, Skoobi dans son post indiquait qu'il fallait faire un recalcul de la feuille, c'est normal, un changement de couleur dans une cellule ne provoque pas d'événement "calculate", contrairement à un changement du contenu d'une cellule ascendante à une formule.

C'est en voyant la proposition de Skoobi, que j'ai appris un p'tit truc  , je voulais simplifier la formule à l'extrème =LIRE.CELLULE(63;A5), mais avec cette solution le recalcule de la feuille ne change pas l'état de la cellule B5, A5 n'ayant subit aucune modification. Le fait de mettre la fonction DECALER provoque ce calcul.

Vivre avec son temps, je vais te proposer une solution une autre solution, à l'aide la macro de Didier, que tu peux retrouver sur ce site.mDF MFCmultiples à la loupe

La gestion est différente, c'est en modifiant à l'aide d'une liste de validation en B5 que la couleur sera appliquer à la cellule date. J'y ai rajouté un code dans la feuille permettant d'ouvrir automatiquement la liste des différents Item.

Un inconvénient par rapport à la gestion par couleur, tu ne pourras pas appliquer la même valeur à plusieurs cellules en une seule opération, comme tu l'aurais fait avec les couleurs.

@+Jean-Marie