Le 06/07/2011 16:23, Marie-Jo Kopp Castinel a écrit :
Bonjour Samuel,

Le 28/06/2011 15:16, Samuel Mounier (Liste CGO) a écrit :
Bonjour,

J'ai eu besoin de la fonction est ESTDATE (équivalent de ESTNUM pour les dates) 
mais je ne l'ai pas trouvé.

Apparemment elle n'existe pas dans le tableur. J'ai donc tenté de réaliser une 
formule équivalente.

J'en suis arrivé à cela...

A1= cellule à tester
B2=ET(OU(TYPE(A1)=1;TYPE(A1)=8);CELLULE("FORMAT";A1)>="D1";CELLULE("FORMAT";A1)<="D5";MAINTENANT()=MAINTENANT())

Cette formule retourne true ou false si la cellule testée est une date
(saisie ou calculé par formule mais pas une chaine de caractère)
dont la valeur numérique est bien mis en forme avec au minimum l'affichage du 
mois et de l'année ou du mois et du jour
(ex. 11/2010 ou 31/12)

Remarque : Cette formule ne prend pas en compte les mises en forme 
personnalisées qui renverraient bien ces
informations mais dans un format "G" (tout les autres formats) (voir l'aide de 
CELLULE("FORMAT";A1)

Remarque 2 : On peut vouloir imposer la présence des valeurs JOUR MOIS et ANNEE 
en mettant non pas une fourchette
allant de D1 à D5 mais en mettant D1 OU D4.

J'avais bien trouvé sur internet NON(ESTERREUR(ANNEE(A1))), mais je pouvais 
avoir n'importe qu'elle valeur numérique
qui semblait être une valeur date valide.
Je n'ai pas réussi à utiliser DATEVAL() avec autre chose que des chaines de 
caractère en paramètres.

Qu'en pensez vous, est-ce la meilleure solution ?

N'existe-il pas plus simple... ?

Est-ce compatible avec les tableurs concurrent (j'en doute un peu) ?

A noter : J'ai mis le maintenant()=maintenant() pour forcer la réévaluation 
systématique de la fonction cellule à
chaque mise à jour du tableau (même le F9 n'agit sans ça).

A+

Samuel Mounier

J'ai suivi ce fil avec intérêt. Mais au départ, pourquoi veux tu tester si 
c'est une date ??
Si c'est une formule alors, facile que ce soit une date. Et verrouillage de la 
cellule.
Si c'est de la saisie, pourquoi ne pas bloquer la saisir avec la validation de 
données ?
Si c'est de la récupération de données... Alors, tu as ta fonction ;-)

Marie jo

Bonjour Marie Jo,

Dans le fichier qui m'a fait soulevé le problème les données sont déjà saisie 
(ce n'est pas moi qui ai réalisé ce tableau).
Et apparemment les utilisateurs mettent parfois un peu n'importe quoi dans les colonnes ou devraient apparaitre normalement une date (genre "voir Dupont" ou "rappeler au ...").

Si l'on veut obliger la saisie d'une date, il est effectivement possible 
d'utiliser la validation de données.

Cependant c'est faisable seulement si :
- le nombre de ligne est limité et connue au départ.
(j'aime pas faire un truc du genre j'en met 300 ça devrait suffire et mettre la validation jusqu'en bas ça fait un peu gonfler les fichiers)

- Je ne veux pas conserver la liberté aux users de saisir des informations 
"présaisie",

C'est pour cela que j'ai trouvé plus judicieux de détecter si la donnée est une 
date bien formaté car
dans ce cas je l'utilise dans les formules qui y font référence ou sinon je 
n'en fait rien.

Pour mon cas,

les formules qui utilise ces valeurs de ces cellules se font sur une comparaison de date soit unique (soit une fourchette) et là ça commence à faire des formules très très longues...
(bien sûr je peux décomposer mais...)

D'où à mon avis l'intérêt de cette nouvelle fonction qui simplifierai pas mal 
ce genre de problématique.


Samuel

--
Envoyez un mail à [email protected] pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à