Excel création message d'erreur

Résolu/Fermé
julie_sur_excel - 1 juin 2011 à 16:52
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 - 6 juin 2011 à 14:48
Bonjour,

Je voudrais créer sous Excel un message d'erreur qui apparaisse lorsque la valeur entrée n'est pas conforme à un format date. J'ai déjà essayé à travers Données> Validation > Date ou personnalisé mais je ne trouve pas comment integrer la condition du format.

merci d'avance.

Julie
A voir également:

8 réponses

Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié par Mike-31 le 2/06/2011 à 18:50
Re,

A tester, pour ma part ça à l'air de fonctionner du 01/01/2010 au 31/12/2012

mettre la plage à traiter en surbrillance exemple A1 à A50

Donnée/Validation/Onglet Option sélectionner Personnalisée et coller cette formule

=TEXTE(A1;"00""-""00""-""00")*1
onglet Alerte d'erreur pour saisir le corps du message
ou
confirmer avec OK

un message d'erreur averti que la formule est reconnue comme erronée
confirmer avec OK

formater la plage en mode date de son choix

la plage accepte le raccourci clavier Ctrl+le point virgule, la saisie abrégée 2/6/11, 02/06/11, 2/6/2011 etc ...

N'hésitez pas à retourner toute anomalie de fonctionnement
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
julie_sur_excel
6 juin 2011 à 10:58
J'avais besoin de cette modification pour un document professionnel, c'est pourquoi je n'ai pas pu vérifier votre formule durant ce long week-end.
Cela fonctionne parfaitement et désolée de vous avoir fait passer 3 jours... désespérants!
Merci beaucoup
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 1/06/2011 à 17:51
Bonjour
ça risque d'être difficile , car excel ne considère dans les formules les dates que sous forme numérique mais pas selon le format...
...sauf peut être en entrant la date sous format texte; mais elle ne sera utilisable ensuite que sous réserve de conversion complexe

comme par exemple cette formule en validation personnalisée sur la cellule A1:
A1 en format texte, ou alors une date entrée précédée d'une apostrophe(,qui n'apparaît que dans la barre de formule):
pas :
=ET(STXT(A1;3;1)="/";STXT(A1;6;1)="/";DROITE(A1;A)*1>1999
n'acceptera que des textes:
composés de :
deux chiffres slash deux chiffres slash et un nombre supérieur à 1999
type: '04/04/2010 par exemple

Mais attention excel quelquefois décide tout seul de transformer la cellule en format date avec cette forme d'entrée, sauf si vous la précédez de l'apostrophe, justement

crdlmnt



Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
Raymond PENTIER Messages postés 58388 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 avril 2024 17 088
2 juin 2011 à 03:39
"mais je ne trouve pas comment integrer la condition du format."

Normal, Julie : ça n'existe pas !
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
2 juin 2011 à 10:03
Salut,

en informatique il n'y a pas de format date spécifique exemple le 03/06/2011 correspond au 40546 éme jour depuis le 01/01/1900 mais ce format pourrait être personnalisé 01-06-2011 etc...
Avec la validation tu peux contrôler la validité entre deux dates par exemple entre le 01/01/2011 et 31/12/2011 mais la validation acceptera la saisie sous forme de date ex.03/06/2011 ou en saisie alphanumérique 40546 qui correspond à la date.

Si tu formate ta plage en format numérique et tu saisis une valeur exemple 2500 cette saisie s'affichera en format date 04/11/1906 et ne sera donc pas rejetée par la validation
je ne pense pas possible créer une règle dans la validation autre que le contrôle entre deux dates sur une plage formatée "Date"
si je trouve je reviendrai sur la discussion, par contre il est possible de le faire en VBA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
2 juin 2011 à 12:16
bonjour à tous,

Il me semble que le plus simple pour contrôler des dates dans validation est d'utiliser "nombre entier" puis "comprise entre" et ensuite saisir les dates mini et maxi que tu peux saisir comme une date (ex 1/1/11) même si ensuite tu auras un nombre.

Si ta colonne est définie avec le format date cela permet un contrôle assez fin sur une plage de dates.
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
3 juin 2011 à 14:25
Salut le fil,

Encore une discussion qui tombe dans les oubliettes, pourquoi poser une question si on n'attend pas de réponses.
Dommage question oh combien pertinente, j'avais un code VBA qui ne servira à rien
Désespérant !
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
6 juin 2011 à 14:48
Re,

Pour terminer la discussion un exemple en VBA
Clic droit sur l'onglet de feuille/Visualiser le code
coller ce code dans la partie vide toute saisie colonne A différente d'une date sera suivie d'un message d'erreur

Private Sub worksheet_change(ByVal Target As Range)
If Target.Column = 1 And Target <> "" And Not IsDate(Cells(Target.Row, Target.Column).Value) Then
Application.EnableEvents = False 'pour éviter de ré-entrer dans Worksheet_Change
Cells(Target.Row, Target.Column).Value = ""
Application.EnableEvents = True
MsgBox "Dans un des formats reconnu par Excel" & vbCrLf & "1/1/11" _
& vbCrLf & "01/01/11" & vbCrLf & "01/01/2011", , "Vous devez saisir une date"
End If
End Sub
0
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
Modifié par tchernosplif le 1/06/2011 à 17:24
Bonjour,

Essayez une validation comme ceci en mettant au préalable le format de cellule au format date , sinon j'ai vu des solutions en VBA en cherchant dans google =estdate()

=DATE(ANNEE(A1);MOIS(A1);JOUR(A1))=A1
-2