Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2016VBA - Évènement TextBox_Enter() non géré en module de Classe
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
re
les lignes en commentaire dans le code
normalement il y en a qu'une et tu les vois pas quand tu importe le module classe
si il n'y a pas cette ligne dans chaque pseudo event ca ne marche pas
et moi j'en met deux car si il y en avait pas de visible dans vbe quand on exporte on pert la la ligne
souvient toi c'est comme ma classe dictionnaire pour Mac
donc en commentaire si j'exporte dans le fichier cls elle y sera
il me suffit donc d'en débloquer une et enregistrer avec bloknote et ré importer dans un fichier ou j'en aurais besoins
d'ailleurs mieux vaut le garder en fichier .cls de coté et tu importe au besoins
VB:
Public Sub Entrer()
'Attribute Entrer.VB_UserMemId = -2147384830
'Attribute Entrer.VB_UserMemId = -2147384830
If TypeOf MyCtrl Is MsForms.TextBox Then usf.ListBox1.AddItem MyCtrl.Name & " Event [Enter] "
If MyCtrl.Name <> memoire.Oldcontrol.Name Then
If TypeOf MyCtrl Is TextBox Then Set memoire.Oldcontrol = MyCtrl
End If
End Sub
Public Sub Sortie(ByVal Cancel As MsForms.ReturnBoolean)
'Attribute Sortie.VB_UserMemId = -2147384829
'Attribute Sortie.VB_UserMemId = -2147384829
'If TypeOf MyCtrl Is MsForms.TextBox Then
' UserForm1.Label1 = MyCtrl.Name
If MyCtrl.Name <> memoire.Oldcontrol.Name Then
usf.ListBox1.AddItem memoire.Oldcontrol.Name & " Event [Exit] "
Else
usf.ListBox1.AddItem MyCtrl.Name & " Event [Exit] "
End If
'End If
End Sub
Public Sub AvantUpdate(ByVal Cancel As MsForms.ReturnBoolean)
'Attribute AvantUpdate.VB_UserMemId = -2147384831
'Attribute AvantUpdate.VB_UserMemId = -2147384831
If TypeOf MyCtrl Is MsForms.TextBox Then usf.ListBox1.AddItem MyCtrl.Name & " Event [BeforeUpdate] "
End Sub
Public Sub ApresUpdate()
'Attribute ApresUpdate.VB_UserMemId = -2147384832
'Attribute ApresUpdate.VB_UserMemId = -2147384832
If TypeOf MyCtrl Is MsForms.TextBox Then usf.ListBox1.AddItem MyCtrl.Name & " Event [AfterUpdate] "
End Sub
re
voila je t'ai fait un exemple
voici un classeur avec classe1 et classe2
les deux ont exactement le même code
sauf que la 2 a l'attribut"Truc" par defaut
mais VBE ne te permet pas de le voir c'est tout
classeur et les deux module classe au format text
comme ça tu vois vraiment comment ca marche
re
un truc important
il faut savoir qu'il y a deux bibles
certains te dirons qu'il faut lettre en haut de module avec les autres
ça fonctionne effectivement pour 2007
et d’autres te dirons qu'il faut le mettre dans le property get
c'est en effet le cas chez moi en haut ça ne fonctionne pas sur 2013
Je ne m'étais jusque là jamais intéressé aux Attributes dont je découvre ici une description.
Et alors y a des gens qui ajoutent des Attributes dans une classe exportée sachant qu'à l'import l'éditeur VBA ne les montre pas !
C'est un peu pervers comme approche non ?
re
non c'est surtout que c'est l'editeur VBE qui inhibe les lignes
il y a moulte éditeurs qui te permettent de le voir
nous ne somme pas beaucoup à l'employer mais comme on peu le constater dans le truc qu'a déniché @fanch55 c'est utilisé et on a même une démonstration du switch memberId qui est opéré 4 fois pour 4 events
T'es sûr ?
Parce que j'ai fait un Export de ta Classe2 et je le trouve l'Attribute Truc.
VB:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "Classe2"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Public valeur
Public Property Get Truc()
Attribute Truc.VB_UserMemId = 0
Truc = valeur
End Property
Public Property Let Truc(kèkechose)
valeur = kèkechose
End Property
re
oui c'est encore une nuance que j'ignorais quand il est dans le property il reste
par contre sur 2007 quand il est dans le property ca ne fonctionne pas
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD