Excel création message d'erreur [Résolu/Fermé]

Signaler
-
Messages postés
17232
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
-
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

8 réponses

Messages postés
17232
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
4 262
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci


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
Messages postés
25329
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
30 septembre 2020
5 505
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?
Messages postés
52362
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
1 octobre 2020
14 176
"mais je ne trouve pas comment integrer la condition du format."

Normal, Julie : ça n'existe pas !
Messages postés
17232
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
4 262
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
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 166
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.
Messages postés
17232
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
4 262
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 !
Messages postés
17232
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
4 262
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
Messages postés
602
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
21 juin 2015
217
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