Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Dudu2

XLDnaute Barbatruc
Bonjour,
Alors l'évènement _Enter() n'est pas géré en Classe ? Une solution ?
 

Pièces jointes

  • Test Classe.xlsm
    40.3 KB · Affichages: 5
Dernière édition:

patricktoulon

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

patricktoulon

XLDnaute Barbatruc
@Dudu2
Allez là on est bon
tu a la gestion enter / exit a la sélection par souris et au déplacement de control en control avec les touches
(ENTER ; TABULATION ; HAUT ; BAS ; GAUCHE ; DROITE
je ne fait pas de video
pose des question si tu veux
 

Pièces jointes

  • classe event ENTER et EXIT pour textbox .xlsm
    21.4 KB · Affichages: 3

fanch55

XLDnaute Barbatruc
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 ...
 

patricktoulon

XLDnaute Barbatruc
je vais regarder ça
 

Dudu2

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

  • classe event ENTER et EXIT pour textbox V2.xlsm
    34.1 KB · Affichages: 0
Dernière édition:

Dudu2

XLDnaute Barbatruc
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:

Dudu2

XLDnaute Barbatruc
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:

patricktoulon

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


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é
 

Discussions similaires

Réponses
6
Affichages
454
Réponses
29
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…