Hello
Je reviens avec mes userforms...
en fait, je pense avoir deux soucis:
1) celui exposé plus haut avec le code qui n'est pas interrompu==> finalement, ca ne concerne que 2 ou 3 formulaires sur les 70 présents dans l'appli... pour l'instant,.. je vais laisser ce pb de coté..
2) c'est la navigation entre les formulaires (tous en NON modal)
Comme vous le voyez dans l'exemple ci joint, j'ai un formulaire de base "Root" point de départ de mon appli
ce formulaire peut appeler 2 parents
et chaque parent peut appeler deux enfants (les memes pour les deux parents)
donc, Child1 et Child2 peuvent etre appelés par Parent1 ou Parent2.
quand un userform est appelé, il a donc besoin de savoir QUI l'a appelé pour pouvoir le rappeler.
j'ai donc utilisé la propriété "tag" de chaque formulaire ==> ainsi, je garde l'historique des ouvertures.
ex:
Chaine d'ouverture:
Root==>Parent1 (tag=root) ==> Child2 (tag=Parent1)
Chaine de fermeture pour revenir au root:
Avant de fermer Child2==> il rappelle le formulaire dont le nom est dans son Tag: Parent1
Parent 1 peut donc etre fermé à son tour et rappeler Root (enfin.. c'est ce que je pensais.....)
Parent 1 ne sait plus qui l'a appelé
pour la chaine d'ouverture, j'utilise le processus
Appelé.tag=me.name ==> je met le nom de l'appelant dans le tag de l'appelé
me.hide ==>je masque l'appelant ==> Normalement; il n'est PAS déchargé
Appelé.show ==>l'appelé n'est pas encore chargé==> donc ca passe par le "appelé_initialize" puis activate
à chaque étape, je vérifie que le tag est correct (bouton "Lire tag")
c'est au retour que ca ne fonctionne pas...
pour la chaine de fermeture, j'utilise le processus
1: Appelant.show => normalement l'appelant n'a PAS été déchargé==> pourtant, ca repasse par l'initialize (du coup.. le tag a été réinitialisé ==> l'appelant ne connait plus son propre appelant....
2: appelé.unload ==> décharge complète du formulaire
Je ne comprend pas comment tout cela fonctionne.....
Pourquoi la méthode SHOW entraine-t-elle un réinitialize d'un formulaire qui n'a pas été déchargé ??