Transformation d'une date String dans une TextBox en Date Excel
Bonjour à tous,
Ce problème étant régulière rencontré dans les demandes du forum, il pourrait être utile de l'intégrer aux Sources VBA Excel.
Partons de l'hypothèse que la date est saisie dans une TextBox nommée TextBox1 au format français (jj/mm/aa ou jj/mm/aaaa) et qu'elle est destinée à être placée dans la cellule A1 de la feuille active.
Si la date est simplement dans une variable String, il suffit de supprimer les deux premières lignes et de remplacer MaDate par le nom de la variable concernée.
Code:
1 2 3 4 5 6 7 8 9 10 11
| Dim MaDate As String
MaDate = TextBox1.Value ' Source des données
If Not IsDate(MaDate) Then ' Le contenu de TextBox ne correspond pas à une date valide
MsgBox("La date saisie n'est pas conforme. Saisir la date au format jj/mm/aaaa")
Else If Val(Split(MaDate, "/")(1)) > 12 Then ' le second élément de date ne correspond pas à un mois, évite les dates au format anglophone
MsgBox("Le second élément de date n'est pas un numéro de mois. Saisir la date au format jj/mm/aaaa")
Else
Range("A1").NumberFormat = "dd/mm/yyyy" ' Format de la cellule
Range("A1").Value = DateSerial(Split(MaDate, "/")(2), Split(MaDate, "/")(1), Split(MaDate, "/")(0)) ' Découpage du texte en année, jour et mois puis recomposition en Date
End If |
Personnellement, je n'utilise jamais les UserForm. J'espère donc que la ligne 2 a une syntaxe correcte. Si ce n'est pas le cas, merci de le signaler.