Vérification de la date

  • Initiateur de la discussion Cougar (débutant)
  • Date de début
C

Cougar (débutant)

Guest
Bonjour,

Un autre petit problème pour certain mais pas pour moi. :angry:

Quel code dois-je écriré pour vérifier si la date qui est entrée correspond à une date réelle, i.e. vérifier qu'il n'y est pas d'erreur lorsque j'entre une date tel que : 39-01-2005 ou 19-15-2005 et qu'un message m'avise de faire les corrections nécessaire.

En espérant ne pas trop vous ennuyer avec mes demandes.


Merci beaucoup de votre aide précieuse pour un débutant. :eek:
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour cougar, le forum

un truc du genre

Code:
Private Sub Textbox1_AfterUpdate()
If Not (IsDate(Me.Textbox1.value)) then
Msgbox 'Date invalide', vbOKOnly + vbCritical
Me.Textbox1.SetFocus
End if
End Sub

Cordialement, A+
 

andré

XLDnaute Barbatruc
Bonjour,

Il y a plusieurs méthodes, par formule et macro.

Celle que moi j'emploie : j'additionne 1 à la date.
Si le résultat est un message d'erreur (#VALEUR!), c'est que la date est fausse.

Exemple :
en A1 : 39-01-2005
en B1 : =A1+1 te renverras un message d'erreur

Si tu veux une réponse plus 'sympa', tu peux écrire la formule : =NON(ESTERREUR(A1+1))
Dans l'exemple, elle te renverras FAUX

Tu peux également mettre cette formule dans une MeFC (mise en forme conditonnelle) de la cellule, sous la forme : =ESTERREUR(A1+1), avec un format de ton choix (motif rouge ou autre).

Ândré.
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
re bonjour

Me fait référence à l'userform actif, tu es en quelle version d'excel?
Sinon le code suivant fonctionnera aussi
Code:
Private Sub Textbox1_AfterUpdate()
If Not (IsDate(Textbox1.value)) then
Msgbox 'Date invalide', vbOKOnly + vbCritical
Textbox1.SetFocus
End if
End Sub

A+
 
C

Cougar (débutant)

Guest
re bonjour,

voici mon code avec ta suggestion :

Range('d45').Select
ActiveCell.Value = InputBox('Écrivez une date SVP')
If Not (IsDate(Textbox1.Value)) Then
MsgBox 'Date invalide', vbOKOnly + vbCritical
Textbox1.SetFocus
End If

Debogage demandé ???

A+
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re bonjour

Le code que je t'ai donné est fait pour une textbox d'un Userform, il faut l'adapter pour une cellule de feuille.
Code:
Do
Range('D45').Value = InputBox(Prompt:='Écrivez une date SVP', Default:=Format(Range('D45').Value, 'dd-mm-yyyy'))
If Not (IsDate(Range('D45').Value)) Then
MsgBox 'Date invalide', vbOKOnly + vbCritical
Else
Range('D45').Value = DateValue(Range('D45').Value)
End If
Loop Until IsDate(Range('D45').Value)
ce code bouclera jusqu'à ce qu'une date correcte soit entrée

Cordialement, A+
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614