[Userform] Class module

Maxoverfred

XLDnaute Occasionnel
Bonjour à tous

Y a t il moyen d'avoir un format prédéfini comme en access sur un champ d'un user form.
Autrement dit: j'ouvre mon formulaire pour faire de la saisie, j'ai 20 champs dates, j'aimerais que l'utilisateur voit dans ce champ:
'xx/xx/xx' (x étant un chiffre évidemment).

Ps: ce champs n'est pas chargé à partir d'une feuille excel.. étant donné que c'est de l'input(=création de nouveaux records à partir d'un userform)

Je pense pas que c'est possible, mais je lance quand même l'appel.


Merci à vous.

Message édité par: maxoverfred, à: 01/08/2005 10:37
 

Abel

XLDnaute Accro
Re:[Userform]

Bonjour Maxoverfred,

Je ne crois pas que cela sois possible.

Regarde ce Lien supprimé et Lien supprimé
Peut être des pistes.

Sinon, ce que je fais dans ces cas là, je mets trois textbox (jj, mm, aaaa) avec un 'autotab' qui met automatiquement le focus sur la textbox suivante dès que le nombre de caractère requis est atteint.
Puis je concatène les trois textbox pour obtenir une date.

En espérant que cela te dépanne.

Abel.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:[Userform]

Bonjour Abel, Maxoverfred, le Forum


Voici un Fichier de Magis Ti

=> Lien supprimé

(Fichier que j'ai vu par la suite 'repris à toutes les sauces' avec juste l'oubli d'un petit ingrédien, le nom de l'auteur ;)

Voir aussi le Fil d'origine pour ajouter un Control d'Intégrité des Dates

=> Lien supprimé

Bon Week End

[ol]@+Thierry[/ol]

J - 7 = U 2

EDITION !!!

Faute de frappe involontaire 'Magis Ti' au lieu de 'Magic Ti' ... Mais c'est tout de même 'Mages Ti' !!!!

Message édité par: _Thierry, à: 29/07/2005 15:27
 

Maxoverfred

XLDnaute Occasionnel
Re:[Userform]

Salut thierry, j'étais déjà tombé sur cette info, merci :)
Maintenant quelqu'un a déjà joué à programmer la chose suivante:

Disons que j'ai 25 contrôles dates (sur mes 300 champs cela va...).. et au lieu d'aller coller chaque fois les trois évènements on change, on exit etc.. j'aimerai faire une petit boucle là-dessus.. mais mais faudrait voir si c'est possible
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:[Userform]

Bonjour MaxoVerFred, Abel, Le Forum

Il te faut faire un Module de Class avec tes évènements, par contre je ne suis pas vraiment familié avec ceux-ci en multi-évènements... J'en ai utilisé dans certaines démos comme celle-ci pour mon Millième Post :*

=> Lien supprimé

Si ça peut te permettre d'avancer dans cette voie, surtout n'oublies pas de nous poster ton adaptation.

Bon Courage
@+Thierry

Message édité par: _Thierry, à: 31/07/2005 15:38
 

Maxoverfred

XLDnaute Occasionnel
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
 

Discussions similaires

Réponses
11
Affichages
538

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87