bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
ubLDXT5CFHA.3908@TK2MSFTNGP15.phx.gbl...
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OE4ho05CFHA.3256@tk2msftngp13.phx.gbl...
Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
ubLDXT5CFHA.3908@TK2MSFTNGP15.phx.gbl...
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:
On%re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
On%23X5L6CFHA.3376@TK2MSFTNGP12.phx.gbl...
re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OE4ho05CFHA.3256@tk2msftngp13.phx.gbl...
Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
ubLDXT5CFHA.3908@TK2MSFTNGP15.phx.gbl...
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:
On%re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29 etc,
je patauge.
merci bonne journée
"Daniel" a écrit dans le message de news:Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:
On%re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29 etc,
je patauge.
merci bonne journée
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uknihE7CFHA.3740@TK2MSFTNGP09.phx.gbl...
Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
On%23X5L6CFHA.3376@TK2MSFTNGP12.phx.gbl...
re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OE4ho05CFHA.3256@tk2msftngp13.phx.gbl...
Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
ubLDXT5CFHA.3908@TK2MSFTNGP15.phx.gbl...
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29 etc,
je patauge.
merci bonne journée
"Daniel" a écrit dans le message de news:Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:
On%re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Bonjour.
Le code suivant devrait le faire. A toi de l'adapter pour traiter les cas
d'erreur.
Sub VerifDat()
Dim Dat As String, LimitJour As Integer
Dim An As Integer, Mois As Integer
Dim Jour As Integer
Dat = InputBox("Date ?")
An = Right(Dat, 4)
Mois = Mid(Dat, 4, 2)
Jour = Left(Dat, 2)
If Not IsNumeric(Jour) Or Not IsNumeric(Mois) Or Not IsNumeric(An) Then
Dat = "Erreur"
Exit Sub
End If
Select Case Mois
Case 1, 3, 5, 7, 8, 10, 12
LimitJour = 31
Case 4, 6, 9, 11
LimitJour = 30
Case Mois = 2
LimitJour = 28
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Case Else
Dat = "Erreur"
Exit Sub
End Select
If Jour = "00" Or Jour > LimitJour Then
Dat = "Erreur"
Exit Sub
End If
Dat = DateSerial(An, Mois, Jour)
End Sub
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29 etc,
je patauge.
merci bonne journée
"Daniel" a écrit dans le message de news:Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:
On%re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Bonjour.
Le code suivant devrait le faire. A toi de l'adapter pour traiter les cas
d'erreur.
Sub VerifDat()
Dim Dat As String, LimitJour As Integer
Dim An As Integer, Mois As Integer
Dim Jour As Integer
Dat = InputBox("Date ?")
An = Right(Dat, 4)
Mois = Mid(Dat, 4, 2)
Jour = Left(Dat, 2)
If Not IsNumeric(Jour) Or Not IsNumeric(Mois) Or Not IsNumeric(An) Then
Dat = "Erreur"
Exit Sub
End If
Select Case Mois
Case 1, 3, 5, 7, 8, 10, 12
LimitJour = 31
Case 4, 6, 9, 11
LimitJour = 30
Case Mois = 2
LimitJour = 28
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Case Else
Dat = "Erreur"
Exit Sub
End Select
If Jour = "00" Or Jour > LimitJour Then
Dat = "Erreur"
Exit Sub
End If
Dat = DateSerial(An, Mois, Jour)
End Sub
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
OO8peDDDFHA.3540@TK2MSFTNGP14.phx.gbl...
Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29 etc,
je patauge.
merci bonne journée
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uknihE7CFHA.3740@TK2MSFTNGP09.phx.gbl...
Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
On%23X5L6CFHA.3376@TK2MSFTNGP12.phx.gbl...
re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OE4ho05CFHA.3256@tk2msftngp13.phx.gbl...
Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
ubLDXT5CFHA.3908@TK2MSFTNGP15.phx.gbl...
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Bonjour.
Le code suivant devrait le faire. A toi de l'adapter pour traiter les cas
d'erreur.
Sub VerifDat()
Dim Dat As String, LimitJour As Integer
Dim An As Integer, Mois As Integer
Dim Jour As Integer
Dat = InputBox("Date ?")
An = Right(Dat, 4)
Mois = Mid(Dat, 4, 2)
Jour = Left(Dat, 2)
If Not IsNumeric(Jour) Or Not IsNumeric(Mois) Or Not IsNumeric(An) Then
Dat = "Erreur"
Exit Sub
End If
Select Case Mois
Case 1, 3, 5, 7, 8, 10, 12
LimitJour = 31
Case 4, 6, 9, 11
LimitJour = 30
Case Mois = 2
LimitJour = 28
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Case Else
Dat = "Erreur"
Exit Sub
End Select
If Jour = "00" Or Jour > LimitJour Then
Dat = "Erreur"
Exit Sub
End If
Dat = DateSerial(An, Mois, Jour)
End Sub
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29 etc,
je patauge.
merci bonne journée
"Daniel" a écrit dans le message de news:Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:
On%re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Une petite remarque en passant : ce test sur les années bissextiles est
insuffisant pour être général. Il renverra vrai pour 2100, année pourtant
non bissextile.
Le test "classique" serait plutôt :
If (An Mod 400 = 0) Or (An Mod 4 = 0 And (Not An Mod 100 = 0)) Then
On peut aussi utiliser un test "spécial Excel" :
If Day(DateSerial(An, 2, 29)) = 29 Then
--
GaenoniusBonjour.
Le code suivant devrait le faire. A toi de l'adapter pour traiter les cas
d'erreur.
Sub VerifDat()
Dim Dat As String, LimitJour As Integer
Dim An As Integer, Mois As Integer
Dim Jour As Integer
Dat = InputBox("Date ?")
An = Right(Dat, 4)
Mois = Mid(Dat, 4, 2)
Jour = Left(Dat, 2)
If Not IsNumeric(Jour) Or Not IsNumeric(Mois) Or Not IsNumeric(An)
Then
Dat = "Erreur"
Exit Sub
End If
Select Case Mois
Case 1, 3, 5, 7, 8, 10, 12
LimitJour = 31
Case 4, 6, 9, 11
LimitJour = 30
Case Mois = 2
LimitJour = 28
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Case Else
Dat = "Erreur"
Exit Sub
End Select
If Jour = "00" Or Jour > LimitJour Then
Dat = "Erreur"
Exit Sub
End If
Dat = DateSerial(An, Mois, Jour)
End Sub
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29
etc, je patauge.
merci bonne journée
"Daniel" a écrit dans le message de news:Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:
On%re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Une petite remarque en passant : ce test sur les années bissextiles est
insuffisant pour être général. Il renverra vrai pour 2100, année pourtant
non bissextile.
Le test "classique" serait plutôt :
If (An Mod 400 = 0) Or (An Mod 4 = 0 And (Not An Mod 100 = 0)) Then
On peut aussi utiliser un test "spécial Excel" :
If Day(DateSerial(An, 2, 29)) = 29 Then
--
Gaenonius
Bonjour.
Le code suivant devrait le faire. A toi de l'adapter pour traiter les cas
d'erreur.
Sub VerifDat()
Dim Dat As String, LimitJour As Integer
Dim An As Integer, Mois As Integer
Dim Jour As Integer
Dat = InputBox("Date ?")
An = Right(Dat, 4)
Mois = Mid(Dat, 4, 2)
Jour = Left(Dat, 2)
If Not IsNumeric(Jour) Or Not IsNumeric(Mois) Or Not IsNumeric(An)
Then
Dat = "Erreur"
Exit Sub
End If
Select Case Mois
Case 1, 3, 5, 7, 8, 10, 12
LimitJour = 31
Case 4, 6, 9, 11
LimitJour = 30
Case Mois = 2
LimitJour = 28
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Case Else
Dat = "Erreur"
Exit Sub
End Select
If Jour = "00" Or Jour > LimitJour Then
Dat = "Erreur"
Exit Sub
End If
Dat = DateSerial(An, Mois, Jour)
End Sub
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
OO8peDDDFHA.3540@TK2MSFTNGP14.phx.gbl...
Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29
etc, je patauge.
merci bonne journée
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uknihE7CFHA.3740@TK2MSFTNGP09.phx.gbl...
Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
On%23X5L6CFHA.3376@TK2MSFTNGP12.phx.gbl...
re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OE4ho05CFHA.3256@tk2msftngp13.phx.gbl...
Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
ubLDXT5CFHA.3908@TK2MSFTNGP15.phx.gbl...
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Une petite remarque en passant : ce test sur les années bissextiles est
insuffisant pour être général. Il renverra vrai pour 2100, année pourtant
non bissextile.
Le test "classique" serait plutôt :
If (An Mod 400 = 0) Or (An Mod 4 = 0 And (Not An Mod 100 = 0)) Then
On peut aussi utiliser un test "spécial Excel" :
If Day(DateSerial(An, 2, 29)) = 29 Then
--
GaenoniusBonjour.
Le code suivant devrait le faire. A toi de l'adapter pour traiter les cas
d'erreur.
Sub VerifDat()
Dim Dat As String, LimitJour As Integer
Dim An As Integer, Mois As Integer
Dim Jour As Integer
Dat = InputBox("Date ?")
An = Right(Dat, 4)
Mois = Mid(Dat, 4, 2)
Jour = Left(Dat, 2)
If Not IsNumeric(Jour) Or Not IsNumeric(Mois) Or Not IsNumeric(An)
Then
Dat = "Erreur"
Exit Sub
End If
Select Case Mois
Case 1, 3, 5, 7, 8, 10, 12
LimitJour = 31
Case 4, 6, 9, 11
LimitJour = 30
Case Mois = 2
LimitJour = 28
If An Mod 4 = 0 And An <> "2000" Then
LimitJour = 29
End If
Case Else
Dat = "Erreur"
Exit Sub
End Select
If Jour = "00" Or Jour > LimitJour Then
Dat = "Erreur"
Exit Sub
End If
Dat = DateSerial(An, Mois, Jour)
End Sub
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:Bonjour,
merci Daniel de ta réponse
Mon Pb c'est qu'avec le calendrier ou le contrôle DTPicker l'on ne peut
laisser la zone date vide sauf erreur de ma part
Aurais tu une macro fonction tte faites pour contrôler les dates
("28/02/05" par exemple) 30 ou 31 jours , le mois de février 28 ou 29
etc, je patauge.
merci bonne journée
"Daniel" a écrit dans le message de news:Effectivement !
Deux solutions, à mon avis :
1. Utiliser le contrôle Calendrier
2. Ecrire les tests de vraisemblance.
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:
On%re bonjour
Si tu inscris 33/6/05 qui n'est pas une date valide
il l'accepte et traduit par 5/6/33
pour 1/13/05 il inscris 13/1/05
merci si tu as une solution
"Daniel" a écrit dans le message de news:Bonjour.
As-tu des exemples de dates incorrectes ?
Cordialement.
Daniel
"jl Guitard" a écrit dans le message de news:bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité
des dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour JL,
Attention, la fonction isdate() vérifie seulement si la date testée
représente une date dans au moins un des formats
"date" reconnu par excel. Comme ce dernier en reconnaît plusieurs ... ça
peut devenir problématique.
Un petit exemple :
Dim MaDate As String
MaDate = "30/02/02"
Si toi, tu veux tester si cette date représente le 30 février 2002 ...
c'est une date inacceptable.
Si tu fais ce petit test, tu vas t'apercevoir qu'excel l'accepte dans dans
un format qui décrit une autre réalité que la
tienne !!!
A = IsDate(MaDate)
A = True
B = CDate(MaDate)
B = 2 février 2030
On est loin du 30 février 2002
Pour que ton test soit vraiment valide, c'est à toi de décider quel format
représente la date que tu veux tester et pour
ce faire, tu peux simplement utiliser la fonction Format()
Dim MaDate As String
MaDate = "30/02/02"
'Est-ce que le 30 février est une date acceptable ?
A = IsDate(Format(MaDate, "JJ/MM/YY"))
A = False
B = CDate(MaDate)
B = retourne une erreur du genre incompatible de type car comme la
variable n'est pas une date reconnue par excel, la
variable représente alors n'importe quoi sauf une "DATE" d'où
incompatibilité de type.
L'autre alternative c'est l'utilisation de la fonction DATESERIAL() qui
limite l'interprétation qu'excel peut faire de
la date qu'on lui présente !
Salutations!
"jl Guitard" a écrit dans le message de news:
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour JL,
Attention, la fonction isdate() vérifie seulement si la date testée
représente une date dans au moins un des formats
"date" reconnu par excel. Comme ce dernier en reconnaît plusieurs ... ça
peut devenir problématique.
Un petit exemple :
Dim MaDate As String
MaDate = "30/02/02"
Si toi, tu veux tester si cette date représente le 30 février 2002 ...
c'est une date inacceptable.
Si tu fais ce petit test, tu vas t'apercevoir qu'excel l'accepte dans dans
un format qui décrit une autre réalité que la
tienne !!!
A = IsDate(MaDate)
A = True
B = CDate(MaDate)
B = 2 février 2030
On est loin du 30 février 2002
Pour que ton test soit vraiment valide, c'est à toi de décider quel format
représente la date que tu veux tester et pour
ce faire, tu peux simplement utiliser la fonction Format()
Dim MaDate As String
MaDate = "30/02/02"
'Est-ce que le 30 février est une date acceptable ?
A = IsDate(Format(MaDate, "JJ/MM/YY"))
A = False
B = CDate(MaDate)
B = retourne une erreur du genre incompatible de type car comme la
variable n'est pas une date reconnue par excel, la
variable représente alors n'importe quoi sauf une "DATE" d'où
incompatibilité de type.
L'autre alternative c'est l'utilisation de la fonction DATESERIAL() qui
limite l'interprétation qu'excel peut faire de
la date qu'on lui présente !
Salutations!
"jl Guitard" <jl.guitard@wanadoo.fr> a écrit dans le message de news:
ubLDXT5CFHA.3908@TK2MSFTNGP15.phx.gbl...
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci
Bonjour JL,
Attention, la fonction isdate() vérifie seulement si la date testée
représente une date dans au moins un des formats
"date" reconnu par excel. Comme ce dernier en reconnaît plusieurs ... ça
peut devenir problématique.
Un petit exemple :
Dim MaDate As String
MaDate = "30/02/02"
Si toi, tu veux tester si cette date représente le 30 février 2002 ...
c'est une date inacceptable.
Si tu fais ce petit test, tu vas t'apercevoir qu'excel l'accepte dans dans
un format qui décrit une autre réalité que la
tienne !!!
A = IsDate(MaDate)
A = True
B = CDate(MaDate)
B = 2 février 2030
On est loin du 30 février 2002
Pour que ton test soit vraiment valide, c'est à toi de décider quel format
représente la date que tu veux tester et pour
ce faire, tu peux simplement utiliser la fonction Format()
Dim MaDate As String
MaDate = "30/02/02"
'Est-ce que le 30 février est une date acceptable ?
A = IsDate(Format(MaDate, "JJ/MM/YY"))
A = False
B = CDate(MaDate)
B = retourne une erreur du genre incompatible de type car comme la
variable n'est pas une date reconnue par excel, la
variable représente alors n'importe quoi sauf une "DATE" d'où
incompatibilité de type.
L'autre alternative c'est l'utilisation de la fonction DATESERIAL() qui
limite l'interprétation qu'excel peut faire de
la date qu'on lui présente !
Salutations!
"jl Guitard" a écrit dans le message de news:
bonjour
J'utilise la commande Not IsDate(Ma date) pour contrôler la validité des
dates
Mais cette commande fonctionne de façon incorrecte dans certains cas
Si quelqu'un a une solution
merci