[Calc] liste des jours compris entre 2 dates.

Bonjour,

-----Message d'origine-----
De : Gérard Fargeot [mailto:gerard.fargeot@orange.fr]
Envoyé : samedi 18 avril 2015 10:12
À : users@fr.libreoffice.org
Objet : [fr-users] Re: [Calc] liste des jours compris entre 2 dates.

catof wrote
> j'ai donc pensé à une liste déroulante entre deux bornes de date
> j'ai bien trouvé ce tuto
> https://forum.openoffice.org/fr/forum/viewtopic.php?f=29&t=22412#p121393
> "Définir une liste avec des formules"
> mais ça ne fonctionne pas .....
>
> avez une idée du pourquoi ?

Je suis l'auteur du tutoriel. Et j'aurais sans doute du le modifier mais
je
n'en ai pas pris le temps...
L'erreur vient d'une modification que Kohei a fait dans l'interprétation
des
chaines de texte par la fonction INDIRECT.

Dans INDIRECT, il est maintenant nécessaire de faire figurer aussi la
colonne (la ligne seule ne suffit pas alors que c'était le cas dans les
anciennes versions et que cela l'est toujours -je crois- dans AOO).

Modifier la partie de la formule INDIRECT(date_début&":"&date_fin)
en INDIRECT("A"&date_début&":A"&date_fin)

Sinon on peut aussi modifier ce comportement dans les options mais je ne
le
conseille pas.

Bon sang mais c'est bien sûr, la méthode est géniale (je n'ai pas compris
tout de suite !)

Pour ce qui est de la fonction INDIRECT, la modification apportée était
nécessaire pour satisfaire à la norme OASIS (OpenDocument-v1.2-os-part2 29
September 2011, page 131):
La référence doit être une référence valable, donc de la forme A1 avec
colonne et ligne.

Cordialement,
Michel

je déterre
mais j'aimerai comprendre la sens de cette formule
je n'arrive à en déterminer la logique

à quoi sert esperluette et le A
LIGNE(INDIRECT("A"&debut&":A"&fin))

merci d'avance

Bonjour,

-----Message d'origine-----
De : catof [mailto:catof@free.fr]
Envoyé : jeudi 28 mai 2015 13:58
À : users@fr.libreoffice.org
Objet : [fr-users] Re: [Calc] liste des jours compris entre 2 dates.

je déterre
mais j'aimerai comprendre la sens de cette formule
je n'arrive à en déterminer la logique

à quoi sert esperluette et le A
LIGNE(INDIRECT("A"&debut&":A"&fin))

J'avais mis un moment à saisir ...
L'astuce consiste à utiliser comme numéro de série pour la date un numéro de
ligne.
Par exemple si on veut commencer la liste déroulante le 28/05/2015, on a
saisi dans une cellule nommée "debut" cette date, qui correspond au numéro
de série 42152, et si on finit 10 jours plus tard le 07/06/2015, le n° de
série pour "fin" sera 42162.
La fonction INDIRECT génère ainsi une plage de cellule: A42152:A42162 et la
fonction LIGNE retransforme cette plage en n° de ligne, ce qui permet à la
liste déroulante de présenter ces 10 numéros et si on applique à la cellule
validée un format date, de le retransformer en date.
C'est un peu compliqué, mais c'est la seule façon de faire apparaître une
liste déroulante de dates comprises entre deux extrêmes (les listes dans
"Validité" ne sont possibles qu'en les écrivant en choisissant liste ou en
renvoyant à une plage de cellules)
On aurait donc pu mettre toute autre lettre que A
Cordialement,

Michel

merci pour vos explications ....
Assurément il faut un cerveau bien fait