XL 2016 textbox dates en lettres

bidoutche

XLDnaute Occasionnel
Bonjour à tous,

Comment faire pour forcer une textbox a inscrire une date en format jour mois année (21-05-1975 donne 21 mai 1975 voire même mercredi 21 mai 1975)
merci de votre aide
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@bidoutche
A tester sur un userform qui contient au moins deux textbox
VB:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox1) > 0 Then
  If IsDate(TextBox1) Then
    TextBox1 = Format(TextBox1, "dddd dd mmmm yyyy")
    Else
    MsgBox "Merci d'entrer une date valide!", vbCritical + vbOKOnly, "ERREUR"
    Cancel = True
  End If
End If
End Sub

EDITION: Bonsoir job75
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonsoir
En tout cas dans une cellule ça n'existe pas une date au format jour mois année. Ce qui existe comme valeur de cellule c'est une date ou autre chose qu'une date, un point c'est tout. Ce qui existe aussi c'est un format d'affichage de cellule indiquant comment doit être visualisé une date, si valeur de cellule en est une.
Utiliser la fonction CDate pour convertir un texte tel que la valeur d'une TextBox en Date si cela est possible.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir bidoutche, JM, Bernard,

Si TextBox1 est dans un UserForm avec un autre contrôle susceptible de prendre le focus :
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 Like "##-##-####" And IsDate(TextBox1) Then
    TextBox1 = Format(TextBox1, "dddd d mmmm yyyy")
Else
    Cancel = True
    TextBox1 = ""
End If
End Sub
A+
 

job75

XLDnaute Barbatruc
Re,

Cela dit il n'est pas indispensable d'imposer un format pour l'entrée de la date :
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox1) Then
    TextBox1 = Format(TextBox1, "dddd d mmmm yyyy")
Else
    Cancel = True
    TextBox1 = ""
End If
End Sub
A+
 

Statistiques des forums

Discussions
311 718
Messages
2 081 866
Membres
101 827
dernier inscrit
kubinou