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

Signaler
-
 Oli -
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

9 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 103
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.
28
Merci

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

CCM 60504 internautes nous ont dit merci ce mois-ci

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 484
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
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 103
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
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 484
Salut,

Il y a la fonction CDate
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 ?
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 103
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+
d'accord je ne savais pas... c'est toujours bon à savoir :)

Merci bonne journée ;)
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 103
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+
En effet ça marche... super !!

Merci beaucoup :)
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 484
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 ;-)