IsDate, Select Case
Le
MichD

Bonjour à tous et à toutes,
Une situation étrange à vous soumettre :
Si j'exécute cette petite procédure, X = Vrai dans x = IsDate(elt)
mais dans le select case, Elt n'est pas reconnu comme date. Case IsDate(Elt)
Est-ce que quelqu'un a une explication ?
'-
Sub Test()
Dim Elt As Variant
Elt = "25/1/2001"
x = IsDate(Elt)
Select Case Elt
Case IsNumeric(Elt)
A = 1
Case IsDate(Elt)
A = 2
Case Else
A = 3
End Select
End Sub
'-
Merci de votre participation.
MichD
--
Une situation étrange à vous soumettre :
Si j'exécute cette petite procédure, X = Vrai dans x = IsDate(elt)
mais dans le select case, Elt n'est pas reconnu comme date. Case IsDate(Elt)
Est-ce que quelqu'un a une explication ?
'-
Sub Test()
Dim Elt As Variant
Elt = "25/1/2001"
x = IsDate(Elt)
Select Case Elt
Case IsNumeric(Elt)
A = 1
Case IsDate(Elt)
A = 2
Case Else
A = 3
End Select
End Sub
'-
Merci de votre participation.
MichD
--
Une explication peut-être?
Elt est une chaine de caractère (dans le select case elt)
isdate(elt) et isnum(elt) sont des boolean.
Elt (string) n'est pas logiquement comparable à isdate(elt) (boolean)
ni à isnum(elt) (boolean)
dans ce cas il vaut sans doute mieux utiliser des conditions:
If IsDate(Elt) Then
A = 2
ElseIf IsNumeric(Elt) Then
A = 1
Else
A = 3
End If
Après mûre réflexion, MichD a écrit :
OK pour l'explication. Pour utiliser un select case, il faudrait le faire comme ceci :
'------------------------------------
Sub Test()
Dim Elt As Variant
Elt = "25/1/2001"
x = IsDate(Elt)
Select Case IsDate(Elt)
Case True
A = A + 1
Case False
A = A + 1
End Select
End Sub
'------------------------------------
MichD
--------------------------------------------
"Charabeuh" a écrit dans le message de groupe de discussion : in5ca7$v1m$
Bonsoir,
Une explication peut-être?
Elt est une chaine de caractère (dans le select case elt)
isdate(elt) et isnum(elt) sont des boolean.
Elt (string) n'est pas logiquement comparable à isdate(elt) (boolean)
ni à isnum(elt) (boolean)
dans ce cas il vaut sans doute mieux utiliser des conditions:
If IsDate(Elt) Then
A = 2
ElseIf IsNumeric(Elt) Then
A = 1
Else
A = 3
End If
Après mûre réflexion, MichD a écrit :
MichD avait énoncé :