VBA Excel : format de date à saisir dans un textbox

Manutr808 Messages postés 4 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 21 juin 2004 - 18 juin 2004 à 10:46
Manutr808 Messages postés 4 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 21 juin 2004 - 21 juin 2004 à 10:05
Bonjour,

J'ai un testbox dans lequel doit être saisie une date du type jj/mm/aaaa.

Par contre s'il tape :
- "jjmmaaaa" (sans les /), en apputyant sur la touche tab la date est modifiée avec le bon format.
- autre chose : affichage d'un message l'invitant à saisir une date au bon format.

Merci à vous

2 réponses

cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 1
18 juin 2004 à 17:34
oui d'accord, mais c koi la kestion?
Mail:ASC.Warning@caramail.com
Website: http://www.decompiler-vb.tk/

Warning
0
Manutr808 Messages postés 4 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 21 juin 2004
21 juin 2004 à 10:05
C'est exact je me suis très mal exprimé.

Voici ma demande qui sera plus précise.

J'ai une frame dans laquelle j'ai un combobox avec 3 éléments.

Lorsque je sélectione le 1 er élément j'ai une petite frame qui s'affiche avec un textbox dans lequel l'utilisateur doit saisir une date.

Ce que je ne sais pas faire :

- C'est que cette date doit être au format JJ/MM/AAAA.
- Que si il tape jjmmaaaa la date doit être convertit au bon format
- Que s'il tape autre chose un message s'affiche l'invitant à saisir une date au bon format.

J'ai essayé grâce à certains codes trouvé sur ce site et qui fonctionne bien. En sortant du contôle le message ne s'affiche pas, il ne s'affiche que lorsque je quite mon userform.

Voici mon code :

________________
'Initialisation du formulaire et de la liste déroulante
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Echéance"
ComboBox1.AddItem "Vente"
ComboBox1.AddItem "Décès"
Me.Frame2.Visible = False
Me.Frame3.Visible = False
End Sub
__________________

'Règles d'affichage selon l'éléments de la liste sélectionné
Private Sub ComboBox1_Change()
'la Frame2 = echeance
'la Frame3 = vente

If Me.ComboBox1.ListIndex = 0 Then
Me.Frame2.Visible = True
Me.Frame3.Visible = False
TextBox10.SetFocus
Else
Me.Frame2.Visible = False
End If
If Me.ComboBox1.ListIndex = 1 Then
Me.Frame3.Visible = True
Txt_date.SetFocus
Else
Me.Frame3.Visible = False
End If
End Sub
__________________________

'Insertion d'un "/" pour établir le format date"
Private Sub Txt_date_Change()
Dim Texte As String
Texte = Txt_date.Text
Select Case Len(Texte)
Case 2, 5
Texte = Texte & "/"
End Select
Txt_date.Text = Texte
End Sub
_____________________________

'Test du format date = problème non résolu
Private Sub Txt_date_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Txt_date.Text = Format(Txt_date.Text, "dd/mm/yyyy")
If IsDate(Txt_date.Text) Then
Txt_date.Text = Format(Txt_date.Text, "dd/mm/yyyy")
Else
Txt_date.Text = ""
MsgBox "La date est non valide. Saisir sous la forme : jj/mm/aaaa"
Cancel = True
End If
End Sub
0