Problème date & inputbox

mikymaxsp28 Messages postés 30 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 18 septembre 2020 - 27 févr. 2008 à 10:23
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 27 févr. 2008 à 20:30
Bonjour a tous,

J'ai un soucis avec les dates sous VBA Excel.

J'utilise une inputbox pour saisir la date concerné pour une recherche et si cette date n'est pas valide (33/01/2008 ou 29/02/2007 ou 15/14/2007):
- soit cette date est inversée automatiquement ce qui fait que le programme peut continuer
   mais avec une fausse information sur la date;
- Soit le programme bug.

Quel solution pouvez-vous m'apporter pour résoudre cela..

Merci.

3 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 févr. 2008 à 12:28
salut,
if not isdate(TAVALEUR) then ACTION pour dire que c'est pas bien ;)

ou tu boucles, tant que isdate est faux, inputbox...
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
mikymaxsp28 Messages postés 30 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 18 septembre 2020
27 févr. 2008 à 19:28
merci, mais ce pas ce que je cherche.

ce n'est pas un problème de controle, c que la date récupérée dans la variable change si elle n'est pas valide:
le 29/02/2007 devient 07/02/2029.

et c chiant, cela peu tout focer si ca le fait avec une date valide.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 févr. 2008 à 20:30
Bonsoir,

il ne faut pas dire n'importe quelle bêtise (as-tu au moins exxayyé ton propre exemple, avant d'affirmer ce que tu affirmes à tort ?)

Je te propose donc le test suivant, que je soumets à ta réflexion, puis ton analyse, ... puis à ta compréhension ...

Puis... à toi d'écrire le code de retour vers ton inputbox tant que tout n'est pas bon ...(juste un peu de réflexion ...)

Private Sub Command1_Click()
 toto = "29/02/2007"
 If Not IsDate(toto) Then
    MsgBox "non"
 Else
   MsgBox "oui": MsgBox DateValue(toto)
 End If
 toto = "01/31/2007"
 If Not IsDate(toto) Then
    MsgBox "non"
 Else
   MsgBox "oui": MsgBox DateValue(toto) & vbCrLf & "là oui : inversion des mois et  jour"
 End If
 toto = "01/31/2007"
 If IsDate(toto) And Month(toto) <> Val(Mid(toto, 4, 2)) Then
   MsgBox "pas d'accord " & toto & " ne peut être une date au format dd/mm/yyy"
 Else
   MsgBox "d'accord ===>> " & DateValue(toto)
 End If
 toto = "31/01/2007"
 If IsDate(toto) And Month(toto) <> Val(Mid(toto, 4, 2)) Then
   MsgBox "pas d'accord " & toto & " ne peut être une date au format dd/mm/yyy"
 Else
   MsgBox "d'accord ===>> " & DateValue(toto)
 End If
End Sub

Ceci étant dit :

J'éviterais personnellement de passer par une inputbox et donnerais la préférence à une saisie contrôlée (les exemples ne manquent vraiment pas sur ce forum !)
0
Rejoignez-nous