[calc] pb format de dates

Bonjour,

J'ai déjà soumis mon problème mais sans réponse jusqu'à présent. Je le reformule avec quelques précisions.

Dans ma feuille de calcul, j'ai une colonne avec des dates au format jj/mm/aa. J'ai créé un filtre spécial pour n'afficher que les lignes comportant une date jusqu'à aujourd'hui : <=aujourdhui(). Mais aucune ligne ne s'affiche. J'ai voulu essayer «à la main» avec un filtre standard. Dans les critères de filtre, les valeurs de ma colonne s'affichent au format aaaa-mm-jj (devrais-je dire yyyy-mm-dd ?). Pourtant, tout est configuré en français. Je peux alors obtenir ce que je veux en entrant la valeur du jour au format anglais, mais toujours pas avec la fonction aujourdhui().

Le problème est le même avec différentes versions de LO, sous Windows et Linux.

Voici le lien vers mon fichier simplifié et anonymisé : https://framadrop.org/r/RvpDgMtWAb#7n42v/tLYzCEC7010B368eEx7hsLdaHBO9ezWv1Bon8=

La colonne sur laquelle je veux filtrer est «ESS1». Le filtre spécial s'appelle «Filtre_Maj» et est défini dans l'onglet «Filtres».

Est-ce que je me trompe quelque part dans le paramétrage ? Merci pour votre aide.

Henri

----- Mail original -----

De: "Henri Boyet" <henri.boyet@gmail.com>
À: "Liste Users LibO" <users@fr.libreoffice.org>
Envoyé: Mercredi 13 Décembre 2017 18:26:16
Objet: [fr-users] [calc] pb format de dates

Bonjour,

J'ai déjà soumis mon problème mais sans réponse jusqu'à présent. Je
le
reformule avec quelques précisions.

Dans ma feuille de calcul, j'ai une colonne avec des dates au format
jj/mm/aa. J'ai créé un filtre spécial pour n'afficher que les lignes
comportant une date jusqu'à aujourd'hui : <=aujourdhui(). Mais aucune
ligne ne s'affiche. J'ai voulu essayer «à la main» avec un filtre
standard. Dans les critères de filtre, les valeurs de ma colonne
s'affichent au format aaaa-mm-jj (devrais-je dire yyyy-mm-dd ?).
Pourtant, tout est configuré en français. Je peux alors obtenir ce
que
je veux en entrant la valeur du jour au format anglais, mais toujours
pas avec la fonction aujourdhui().

Le problème est le même avec différentes versions de LO, sous Windows
et
Linux.

Voici le lien vers mon fichier simplifié et anonymisé :
https://framadrop.org/r/RvpDgMtWAb#7n42v/tLYzCEC7010B368eEx7hsLdaHBO9ezWv1Bon8=

La colonne sur laquelle je veux filtrer est «ESS1». Le filtre
spécial
s'appelle «Filtre_Maj» et est défini dans l'onglet «Filtres».

Est-ce que je me trompe quelque part dans le paramétrage ? Merci pour
votre aide.

Henri

bonjour,

c'est le système (linux) qui défini la date (cf: man date):
http://pwet.fr/man/linux/commandes/date

que donne la valeur : locale

locale
LANG=fr_FR.utf8
LANGUAGE=
LC_CTYPE="fr_FR.utf8"
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=

slt
bernard

Bonsoir Henri,

Bonjour,

J'ai déjà soumis mon problème mais sans réponse jusqu'à présent. Je le reformule avec quelques précisions.

Dans ma feuille de calcul, j'ai une colonne avec des dates au format jj/mm/aa. J'ai créé un filtre spécial pour n'afficher que les lignes comportant une date jusqu'à aujourd'hui : <=aujourdhui(). Mais aucune ligne ne s'affiche. J'ai voulu essayer «à la main» avec un filtre standard. Dans les critères de filtre, les valeurs de ma colonne s'affichent au format aaaa-mm-jj (devrais-je dire yyyy-mm-dd ?). Pourtant, tout est configuré en français. Je peux alors obtenir ce que je veux en entrant la valeur du jour au format anglais, mais toujours pas avec la fonction aujourdhui().

Le problème est le même avec différentes versions de LO, sous Windows et Linux.

Voici le lien vers mon fichier simplifié et anonymisé : https://framadrop.org/r/RvpDgMtWAb#7n42v/tLYzCEC7010B368eEx7hsLdaHBO9ezWv1Bon8=

La  colonne sur laquelle je veux filtrer est «ESS1». Le filtre spécial s'appelle «Filtre_Maj» et est défini dans l'onglet «Filtres».

Est-ce que je me trompe quelque part dans le paramétrage ? Merci pour votre aide.

Henri

Si j'ai bien compris, lorsque tu mets dans ton filtre

<=aujourdhui()

LibO voit le début du contenu '<=' comme un texte (puisque ça ne commence pas par '='), donc le reste du contenu 'aujourdhui()' est toujours interprété comme un texte. Tu demandes en fait à LibO d'être capable de reconnaitre au milieu de ton texte une fonction. Il faut que tu sépares la fonction du reste du code du test, pour que LibO puisse l'identifier comme une fonction :

= "<=" & AUJOURDHUI()

dans ce cas, le texte "<=" est concaténer avec le retour de la fonction AUJOURDHUI() et tu obtiens le résultat attendu (même si l'affichage dans le filtre donne le numéro du jour correspondant).

L'affichage des dates en aaaa-mm-jj dans le filtre est peut-être lié à l'impossibilité de maîtriser le format de date de toutes les cellules, certaines pouvant utiliser d'autres locales ; mais cela n'a aucun rapport avec ton filtre.

A+

Laurent BP

Bonjour Laurent,

Merci beaucoup, ça fonctionne. Mon problème est résolu. Et j'ai encore appris quelque chose qui va me permettre d'utiliser des filtres plus élaborés.

Henri

Bonjour,

[...]

standard. Dans les critères de filtre, les valeurs de ma colonne s'affichent au format aaaa-mm-jj (devrais-je dire yyyy-mm-dd ?). Pourtant, tout est configuré en français. Je peux alors obtenir ce que je veux en entrant la valeur du jour au format anglais

Ce n'est pas le format anglais, c'est le format ISO 8601
qui est d'ailleurs très pratique quand on met la date dans le nom d'un fichier car avec ce format l'ordre alphanumérique correspond à l'ordre temporel.

Bonne journée
JBF