IsDate accepte le format "mm/jj/aaaa"

Claude Azoulai

XLDnaute Junior
Bonjour à tous

J'ai un petit souci, à savoir :
Quand je saisi le date "10/30/2006", la fonction IsDate() l'accepte sans broncher.
Dois-je changer un réglage dans les options (que je n'ai pas trouvé), ou créer un programme de test plus élaboré ?

Quelqu'un a-t-il déja rencontré ce problème ?

Merci de votre réponse

Claude Azoulai
 

Pierrot93

XLDnaute Barbatruc
Re : IsDate accepte le format "mm/jj/aaaa"

Bonjour Claude,

En fait isdate si détermine si une valeur peut être INTERPRETEE comme une date, après tout dépend de l'utilisation que tu veux en faire, et des déclaration de variable associées.

Regarde le petit code que je viens de faire ci dessous, execute le pas à pas, ce sera peut être plus parlant...

Code:
Sub test()
Dim madate As Date, montest As Boolean
montest = IsDate(Range("K5").Value) 'dans K5 j'ai 10/30/2006
madate = Range("K5").Value ' renvoi bien 30/10/2006
Range("K6").Value = madate
End Sub

Bon après midi
@+
 

Pierrot93

XLDnaute Barbatruc
Re : IsDate accepte le format "mm/jj/aaaa"

Bonjour Claude,

En fait isdate si détermine si une valeur peut être INTERPRETEE comme une date, après tout dépend de l'utilisation que tu veux en faire, et des déclaration de variable associées.

Regarde le petit code que je viens de faire ci dessous, execute le pas à pas, ce sera peut être plus parlant...

Code:
Sub test()
Dim madate As Date, montest As Boolean
montest = IsDate(Range("K5").Value) 'dans K5 j'ai 10/30/2006
madate = Range("K5").Value ' renvoi bien 30/10/2006
Range("K6").Value = madate
End Sub

Bon après midi
@+
 

porcinet82

XLDnaute Barbatruc
Re : IsDate accepte le format "mm/jj/aaaa"

Salut,

Je confirme ce qu'à poster Pierrot. Et pour ce qui de faire un programme plus élaboré, j'ai beau réfléchir, je ne vois pas trop comment le gérer puisque si la personne tape un truc du genre 01/05/2006, tu n'as aucun moyen de savoir si il s'agit du 1 mai 2006 ou du 5 janvier 2006.
Sauf si tu part si tu parts du principe qu'en France, tout le monde saisie la date au format dd/mm/yyyy.
Enfin, si tu trouves un programme qui arrive à gérer ca, je suis preneur.

Voili, voilou,

@+
 

Claude Azoulai

XLDnaute Junior
Re : IsDate accepte le format "mm/jj/aaaa"

Merci à Pierrot93 et Porcinet82

En fait je n'utilise pas IsDate comme vous.
Je l'utilise dans une instruction telle que
If IsDate(Madate) then
(ici mes instructions)
End if
et il accepte "10/30/2006" comme une date valable.

Pour Porcinet82 j'ai décidé de créer une fonction "TesteDate" que je communiquerais si ça vous intéresse.

Claude Azoulai
 

Pierrot93

XLDnaute Barbatruc
Re : IsDate accepte le format "mm/jj/aaaa"

Re Claude, Romain

Et ta variable "MaDate", tu l'initialises à partir de quoi et tu la déclares comment ?

Essaie de mettre ton fichier sans données confidentielles, ca sera plus facile pour t'aider.

Bonne soirée
@+
 

Claude Azoulai

XLDnaute Junior
Re : IsDate accepte le format "mm/jj/aaaa"

A Porcinet82

J'ai créé une fonction pour tester les dates que je te soumet.

Public Function TesteDate(txtDate As String) As Boolean
Dim sJour As String, sMois As String, sAnnée As String, Texte As String
Dim iJour As Integer, iMois As Integer, iAnnée As Integer
Dim Rang1 As Integer, Rang2 As Integer
Dim Bissextile As Boolean

Bissextile = False
TesteDate = True
Rang1 = InStr(1, txtDate, "/")
Rang2 = InStr(Rang1 + 1, txtDate, "/")
sJour = Left(txtDate, Rang1 - 1)
i = Rang2 - Rang1 - 1
Texte = Right(txtDate, Len(txtDate) - Rang1)
sMois = Left(Texte, i)
sAnnée = Right(Texte, Len(Texte) - i - 1)
iJour = CInt(sJour)
iMois = CInt(sMois)
iAnnée = CInt(sAnnée)
If iAnnée Mod 4 = 0 Then Bissextile = True
Select Case iMois
Case 1, 3, 5, 7, 8, 10, 12
If iJour > 31 Then TesteDate = False
Case 2 And Bissextile
If iJour > 29 Then TesteDate = False
Case 2 And Not Bissextile
If iJour > 28 Then TesteDate = False
Case 4, 6, 9, 11
If iJour > 30 Then TesteDate = False
End Select
If iMois > 12 Then TesteDate = False
End Function
Je l'ai testée rapidement et ça semble fonctionner.
Si tu as mieux, fait mois signe.

Merci à vous

Claude Azoulai
 

porcinet82

XLDnaute Barbatruc
Re : IsDate accepte le format "mm/jj/aaaa"

Salut,

Claude, je viens de tester rapidement ta fonction et elle a l'air de fonctionner. Je te remercie d'avoir mis ca sur le forum. En tout cas je la garde dans mes archives, ca peut toujours servrir.

Merci a toi,

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 504
Messages
2 089 076
Membres
104 021
dernier inscrit
abdesslem