OVH Cloud OVH Cloud

"Exit" inexistant avec TextBox dans les modules de classes

12 réponses
Avatar
Patrick Fredin
Bonjour,

Pour les TextBoxes, l'événement "Exit" n'existe pas dans les modules de
classe. Y a-t-il un moyen de traiter cet événement autrement que de le faire
pour tous les TextBoxes ?

Merci pour votre aide.

--
Patrick

2 réponses

1 2
Avatar
MichDenis
Bonjour Patrick,

Voici une façon de faire :

'----------------------------
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If MaFunction(TextBox1) = False Then
Cancel = True
MsgBox "Format incorrect"
End If

End Sub

'----------------------------
Function MaFunction(Tbox As MSForms.TextBox) As Boolean

'Tbox représente chacun des textbox où tu saisis tes dates
'Le code de ta fonction
'Après le test du format
'la dernière ligne doit attribuer True or False
'à MaFunction

End Function
'----------------------------


Salutations!






"Patrick Fredin" a écrit dans le message de news:

Pour chaque TextBox je vais ajouter la procédure :

Private Sub txt09_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Call DatesFormat(txt09)
End Sub

où "txt09" est le nom d'un TextBox, mais j'en ai 36 comme cela.

Dans "Call DatesFormat(txt09)", est-il possible de remplacer "txt09" par une
propriété ou une méthode quelconque qui détermine le nom de l'objet, en
l'occurence "txt09" ?

Merci.


je ne suis pas sur de comprendre la question. Peux-tu préciser ?

A+

Y a-t-il un moyen de savoir quel est le nom de l'objet dont l'événement vient
d'être déclenché, par exemple "txtNom" sans l'écrire dans la procédure de
l'événement ?

Merci.



Bonjour,


Dans son autre fil, il dit qu'il veut formater ses dates, pour



avoir

un affichage uniforme.


C'est sûr que je peux utiliser l'événement de chacun des objets mais


le code

va devenir interminable (il en a 36).


Et si dans "l'Exit" de chaque contrôle, tu mets:

testdate le_numéro_du_contrôle

Dans un module standard, tu mets une macro

sub testdate (le_numéro_du_contrôle)
procédure de test et réaffichage
end sub

Sauf horreur de ma part, cela devrait passer comme du beurre dans la
poêle. Comme tu passerais le numéro du contrôle, ou au pire, son nom
au complet, à la procédure de test, tu pourrais agir sur le bon
contrôle, sans réécrire 36 fois ta procédure.













Avatar
Patrick Fredin
Super, c'est cela.

Merci beaucoup.

Patrick


ben , en dehors de Activecontrol.name, je ne vois pas mais peut-être je
ne réponds pas à ta question.

A+


Pour chaque TextBox je vais ajouter la procédure :

Private Sub txt09_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Call DatesFormat(txt09)
End Sub

où "txt09" est le nom d'un TextBox, mais j'en ai 36 comme cela.

Dans "Call DatesFormat(txt09)", est-il possible de remplacer "txt09" par une
propriété ou une méthode quelconque qui détermine le nom de l'objet, en
l'occurence "txt09" ?

Merci.



je ne suis pas sur de comprendre la question. Peux-tu préciser ?

A+


Y a-t-il un moyen de savoir quel est le nom de l'objet dont l'événement vient
d'être déclenché, par exemple "txtNom" sans l'écrire dans la procédure de
l'événement ?

Merci.




Bonjour,



Dans son autre fil, il dit qu'il veut formater ses dates, pour



avoir


un affichage uniforme.


C'est sûr que je peux utiliser l'événement de chacun des objets mais


le code


va devenir interminable (il en a 36).


Et si dans "l'Exit" de chaque contrôle, tu mets:

testdate le_numéro_du_contrôle

Dans un module standard, tu mets une macro

sub testdate (le_numéro_du_contrôle)
procédure de test et réaffichage
end sub

Sauf horreur de ma part, cela devrait passer comme du beurre dans la
poêle. Comme tu passerais le numéro du contrôle, ou au pire, son nom
au complet, à la procédure de test, tu pourrais agir sur le bon
contrôle, sans réécrire 36 fois ta procédure.


















1 2