"Exit" inexistant avec TextBox dans les modules de classes
12 réponses
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 ?
'---------------------------- 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.
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" <nospam_patrick.fredin@iquebec.com> a écrit dans le message de news:
CE3C7A60-7518-4757-963E-75B3CBDE1150@microsoft.com...
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.
'---------------------------- 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.
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.
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.
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.