XL 2016 VBA - Évènement TextBox_Enter() non géré en module de Classe

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

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
le "Attribute entrer blablabla"
c'est un attribut par défaut que l'on peut mettre en mode édition du module par un editeur de texte
tel que c'est fait là ça ne sert a rien depuis 2010
c'est pour éviter de cité une eventuelle property dans le code
j'ai montrer comment faire dans la ressource dictionnaire pour Mac

par exemple
j'ai un get property truc dans ma classe1
public property get truc()
truc="bonjour"
end property



dans un module je peux faire msgbox classe1
ça me donnera "bonjour" soit la property par defaut

mais ça ne peut être fait qu'en exportant le module et en l'ouvrant avec bloknote
ajouter en dessous des autres
sauver
re importer le module classe ou userform
 
re
@fanch55
non il ne fonctionne pas correctement au click(souris)
Tous les Textbox ne font pas partie de la Classe, ceci explique peut-être cela ... 😉

Sinon le dernier classeur que tu as fourni est pas mal mais il a un ti défaut: l'initialize parait ne pas prendre en compte l'état et si tu fais un Tab sur les Textboxs, on dirait que le code est un peu perdu aléatoirement par la suite même avec un clic ...🤔
pat.gif
 
Tous les Textbox ne font pas partie de la Classe, ceci explique peut-être cela ... 😉

Sinon le dernier classeur que tu as fourni est pas mal mais il a un ti défaut: l'initialize parait ne pas prendre en compte l'état et si tu fais un Tab sur les Textboxs, on dirait que le code est un peu perdu aléatoirement par la suite même avec un clic ...🤔Regarde la pièce jointe 1195377
je vais regarder ça
 
En utilisant ce que tu as écrit pour exploiter les KeyCodes et le MouseUp (excellente idée !) pour détecter Enter() et Exit(), je suis reparti sur la formule "traditionnelle" du code de Classe en Tableau dans le UserForm.

Voir le fichier joint qui comporte la partie fonctionnelle que tu as ajoutée avec les Labels qui contiennent les TextBox de sortie et d'entrée.

Mais je vais maintenant essayer de faire une classe strictement focalisée sur Enter() et Exit() sans préjuger d'une partie fonctionnelle.
Mais c'est pas simple car il faut capter en Classe TOUS les contrôles et je ne sais pas si c'est possible.
 

Pièces jointes

Dernière édition:
En fait, la Classe ne gère pas les évènements sur un Public WithEvents Control As MSForms.Control.
Ce qui oblige à décliner tous les Controls possibles et imaginables en WithEvents puis d'associer en fonction du type de Control dans le tableau de la Classe et de coder dans la Classe chacun des leurs évènements intéressant pour la capture d'un Exit() de TextBox qui se détecte par l'entrée dans un autre Control !

Ce n'est plus un utilitaire c'est une mission humanitaire !
Sans doute faudrait-il s'intéresser à la version fournie par @fanch55, mais j'y capte rien.
 
Dernière édition:
Les évolutions dans les Controls avec Set NextControl = Usf.Controls(TextBox.TabIndex + 1) ça ne marche pas !
Un vrai cauchemar. Je me cogne sur ce problème depuis hier soir.
C'est retourné selon l'ordre de création et pas du TabIndex.
Il faut chercher dans les tous Controls, celui qui a le TabIndex + 1.

De plus, si le Control est un Label, un {TAB} va l'ignorer. Il faut en tenir compte dans le code pour savoir sur quel Control on se trouve après les touches du KeyCode.
 
Dernière édition:
re
Bonjour @Dudu2
j'ai ouvert un nouveau projet un userform mis de controls textbox bouton textbox bouton label
et j'ai observé le comportement de la touche tab je suis même aller plus loin j'ai mis des frames et multipages
finalement pourquoi s'ennuyer a essayé de refaire ce principe autant le laisser faire
et voir les choses sous un autre angle
et c'est là !!! que j'ai je me suis rappelé quelque chose (la mise ajour du controls key down/keyup)
et finalement j'ai fait un test simple ("msgbox activecontrol.name")
bingo!!!
alors
demo.gif


et fini qui est le suivant ou le précédent nextcontrol et tout y cointi

je te donne un indice ( qui est le control actif et à quel moment )

terminé
 
- 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

Discussions similaires

Réponses
5
Affichages
750
Réponses
6
Affichages
535
Réponses
28
Affichages
618
Réponses
1
Affichages
473
Retour