Icône de la ressource

Collection module classe 2024 patricktoulon (classe controls) gérer Enter/exit TextBox 1.0 1.0

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 !

Pourquoi veux-tu que je regarde la vidéo. C'est le résultat de ton code que je ne connais pas et qui ne fonctionne pas. Passe-moi ton code quelque part et je regarderai.

Je n'ai pas de problème avec mon code.
Tiens, j'ai même qualifié les traces avec le nom du UserForm (sauf pour les Terminate car c'est plus accessible).
 

Pièces jointes

Ah ok. Ce n'est pas lié au fait qu'il y a 2 UserForms.
C'est lié au fait que tu fermes le UserForm vbModeless par le menu system.
Les instances de classe des Controls ne sont pas terminées.

Tu ferais bien d'avoir un .bat avec ça pour éviter de passer par le gestionnaire de tâches.
echo off
REM Kill direct
taskkill /f /im excel.exe
 
il faut donc prévoir cela
quelque chose genre dans le queryclose
if closemode=0 then set ControlEnterExit=nothing
voir même sans la condition

on en revient donc a fermer une classe 😉
 
Ça c'est encore un bug Excel !
Oui alors effectivement il faut soit intercepter le Query_Close et terminer la et les instances en cours.
Ou je vais essayer de le contourner en plaçant le tableau des child en déclaration directe dans le UserForm.
Ou déclarer la classe en table et y placer toute la famille.

Bien vu ! Je ne l'avais pas testé ce cas.
 
au final
si on remonte notre débat sur la fermeture des classes par code a partir du post #11 a peu près
qui là se trouverait bien dans le queryclose
on peu dire que j'avais raison depuis le debut puisque de tout facon dans un contexte ou l'on ferme par le menu system il faut killer par code
afin de ; dans tout les contextes de fonctionnement pouvoir fermer les classes mère et/ou child
 
re
Ou je vais essayer de le contourner en plaçant le tableau des child en déclaration directe dans le UserForm.
Ou déclarer la classe en table et y placer toute la famille.
à ben là le problème ne se pose plus puisque là il n'y "a plus besoin de mère
toute les classe qui et"aient child sont membre de l"a collection ou table("array)comme tu veux
ca implique du codage dans le userform + la classe

avec ma méthode ref circulaire je n'ai aucun de ces soucis en fermant clas.AllClass dans le queryclose
que tu a testé d’ailleurs 😉
AllClass qui est une collection dans la classe et donc membre implémenté et accessible dans l'userform
 
La question n'est pas de savoir qui a raison depuis le début puisque ton Query_Close n'a rien à voir avec le fait que le UserForm est vbModeless. Tu dois faire un Query_Close parce que tes child contiennent la mère.
Moi je suis sur un Query_Close parce que Excel bug sur la fermeture système du UserForm vbModeless et pas sur un Unload.
 
En mettant la Collection dans le UserForm directement et pas dans la classe mère, c'est pareil !!!
La fermeture système ne ferme pas les instances de la collection !
Car sur la fermeture système il ne voit pas que ce sont des instances de classe dans la collection.
 
Pour que la fermeture système voit toutes les instances de classe, il faut qu'elles soient déclarées comme telles dans le UserForm. Je vais donc essayer de trouver une autre méthode. Décidément nos sujets sont à rallonge !
 
re


Pour que la fermeture système voit toutes les instances de classe, il faut qu'elles soient déclarées comme telles dans le UserForm. Je vais donc essayer de trouver une autre méthode. Décidément nos sujets sont à rallonge !
ben c'est par ce que on va au fond des choses


conclusion :
on revient à la fermeture par code, donné en exemple en post #82
avec mon modèle en tout cas je n'ai pas de soucis
ton classeur avec les fermeture par code
ton fichier modifié plus de soucis
et le mien pareil
 

Pièces jointes

Oui, le Query_Close règle le problème des 2 méthodes qui ont des causes différentes.
Mais je suis têtu et je vais continuer à chercher une solution.
Quand j'aurai fini de monter ma nouvelle trott 🙂
 
re
ok bonne trott
ben la seule solution serait de coder les instanciations (array ou collection) dans le userform (plus de "init")
parti de là les variables sont connues partout dans le userform
ce n'est pas transportable ou exportable

reste que avec ma méthode ref circulaire( mère membre de la fille) ok les classes ne sont pas fermées en fermant par la croix mais excel ne plante pas 😉puisque mère n'est pas perdu par la variable memoire

comme quoi des fois 😉
 
- 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
Retour