Re:[Userform]
Me revoilà, donc j'ai quelqu'un peu chipoté et suis arrivé à ceci:
Creation d'un class module:
---------------------------------------
Public WithEvents Textdate As Msforms.TextBox
Private Sub Textdate_Change()
Dim Texte As String
Texte = Textdate.Text
Select Case Len(Texte)
Case 2, 5
Texte = Texte & '/'
End Select
Textdate.Text = Texte
End Sub
---------------------------------------
Ensuite ajout à l'initialisation de mon userform:
---------------------------------------
Dim Txtdate() As New Classdate
Dim Ctrl As Control
Dim nb As Integer
For Each Ctrl In usrinput.Controls
Debug.Print Ctrl.Name
If LCase(Ctrl.Name) Like 'lbl_*' Or LCase(Ctrl.Name) Like 'cmd*' Then
Else
If InStr(1, LCase(Ctrl.Name), 'date', vbTextCompare) > 0 Then
nb = nb + 1
ReDim Preserve Txtdate(1 To nb)
Set Txtdate(nb).Textdate = Ctrl
End If
End If
Next
---------------------------------------
Donc il me donne un format visuel à la modification du champs, maintenant, il me reste à ajouter l'event suivant:
---------------------------------------
Private Sub Ctrldate_Exit(ByVal Cancel As Msforms.ReturnBoolean)
If IsDate(Ctrldate.Text) Then
Ctrldate.Text = Format(Ctrldate.Text, 'dd/mmm/yyyy')
Else
Ctrldate.Text = ''
End If
End Sub
---------------------------------------
Et c'est là que cela se complique.. car comme j'ai défini mon champ comme un textbox, je n'ai évidemment pas l'évènement Exit .. car il est attribué à un control.. donc j'ai essayé de rajouter un autre class module, mais il n'aime pas trop..
Une idée ?
Message édité par: maxoverfred, à: 01/08/2005 11:24
Message édité par: maxoverfred, à: 01/08/2005 12:39