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.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager