mikymaxsp28
Messages postés30Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention18 septembre 2020
-
27 févr. 2008 à 10:23
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 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..
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 !)