Problème de déclaration de variable
Bonjour,
Un problème de déclaration de variable plante (semble t-il) ma procédure.
Voici un extrait des déclarations ci-dessous (je n'ai indiqué que les variables concernées par le pb) :
Code:
1 2 3 4 5 6
| Sub Recup_donnees_pour_TDB()
'Déclaration des variables
'
Dim PO_Date As Variant
Dim check_PO_Date As String |
Petite précision : La variable "PO_Date" est une date. Elle peut cependant être vide. Au départ j'avais déclaré cette variable comme une date mais du fait de plantages j'ai dû la transformer en Variant.
Dans mon cas du moment, PO_Date est vide (cellule vide).
Lorsque j'exécute la macro, à un moment donné, je passe par ce qui est indiqué juste en dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| '
'------PO_Date------
'
check_PO_Date = IsDate(Range("C9").Value)
If check_PO_Date = "Vrai" Or check_PO_Date = "True" Then
PO_Date = Range("C9").Value
MsgBox ("check PO Date VRAI")
Else
MsgBox ("check PO Date FAUX")
PO_Date = ""
MsgBox ("PO_Date = ") & PO_Date
End If
' |
En mode débugage pas à pas j'obtiens :
check PO Date Faux
Je clique sur "OK" et j'obtiens :
PO_Date = (vide)
Je clique à nouveau sur "OK" et j'obtiens :
Run time error 13
Type mismatch.
Après avoir cliqué sur "debugage" le programme m'affiche les lignes suivantes (ligne avec le "if" en fluo)
Code:
1 2 3 4 5 6 7 8 9 10
| '
'------PO_Date------La formulation ci-dessous permet d'éviter l'inversion jour / mois
'
If IsDate(PO_Date) = "Vrai" Or IsDate(PO_Date) = "True" Then
Range("E" & y).NumberFormat = ""
Range("E" & y).Value = CDate(PO_Date)
Else
Range("E" & y).Value = PO_Date
End If
' |
Je ne comprends pas mon erreur. Pouvez-vous éclairer ma lanterne ? Merci par avance.
Cdlt.
Jérôme.