[VBA]Convertir un string en date [Résolu/Fermé]

- - Dernière réponse :  Oli - 18 févr. 2018 à 10:22
Bonjour,

j'ai un problème avec les dates en vba...

Admettons que j'ai un string st = "12/03/2009" et que je souhaite le convertir en Date...

quelqu'un saurait-il comment faire ?

PS : je suis novice en VBA

Cordialement,

green
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
8713
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
27 janvier 2014
997
28
Merci
seulement utile quand...
MyDate = "12 février 1969" ' Définit la date.
MyShortDate = CDate(MyDate) ' Convertit en type Date.
Sinon, les dates écrite en littéral 12/12/2008 par exemple, sont d'office considérée comme une date.

Dire « Merci » 28

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61274 internautes nous ont dit merci ce mois-ci

Messages postés
21510
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
8 octobre 2012
3366
4
Merci
Re,

Aussi pour test
Sub string2date()
    Dim st As String, st2 As String, st3 As Date
    Dim dt As Date, dt2 As Date, dt3 As Date
    st = "12/03/2009"
    dt = CDate(st)
    If st = dt Then
        MsgBox "ok"
    Else
        MsgBox "non"
    End If
    
    st2 = "12 février 1969"
    dt2 = CDate(st2)
    If st2 = dt2 Then
        MsgBox "ok 2"
    Else
        MsgBox "non 2"
    End If
    
    st3 = "18/03/2009"
    dt3 = CDate(st3)
    MsgBox DateDiff("d", st2, dt3)
    MsgBox DateDiff("d", dt2, dt3)
End Sub
Messages postés
8713
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
27 janvier 2014
997
3
Merci
Bonjour,
Faut rien faire, c'est d'office une date avec lequel tu peu travailler

A+
oui mais non car moi ça m'inverse le jour et le mois.
je suis passé par CD(date) et c'est OK
Messages postés
21510
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
8 octobre 2012
3366
3
Merci
Salut,

Il y a la fonction CDate
1
Merci
Re,

merci beaucoup pour la fonction CDate, c'est ce qu'il me fallait ;)

lermite, voulez-vous dire qu'un string ayant la forme "12/02/2009" peut ensuite être directement comparé a une variable au format date ?
lermite222
Messages postés
8713
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
27 janvier 2014
997 -
test cette petite sub
Sub Essais()
Dim D As String
Dim DD As Date
    D = "10/10/2008"
    DD = "11/10/2008"
    M = DateDiff("d", D, DD)
    MsgBox "le nombre de jour entre le " & D & " et " & DD & " est de " & M & " jour(s)"
End Sub

A+
1
Merci
d'accord je ne savais pas... c'est toujours bon à savoir :)

Merci bonne journée ;)
Messages postés
8713
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
27 janvier 2014
997
1
Merci
Re,
Et pour être complet, Cdate (ou ancienement CVdate) peu aussi être nécessaire quand il y a une extraction de date à partir d'un BD ou d'un fichier texte/csv
A+
1
Merci
En effet ça marche... super !!

Merci beaucoup :)
Messages postés
21510
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
8 octobre 2012
3366
0
Merci
Re,

Sinon, les dates écrite en littéral 12/12/2008 par exemple, sont d'office considérée comme une date.
Oui, c'est bien ça ;-)