Bonjour,
J'ai un petit problème avec le masquage et l'affichage d'un userform. J'ai joint un petit fichier de simulation pour que vous puissiez tester.
Mon userform est grand et donc masque une partie de l'écran. A un moment, je pose une question à propos de la feuille Excel sélectionnée et pour que l'utilisateur puisse bien voir la feuille, je souhaite masquer le userform puis le réafficher.
Bêtement, je pensais qu'avec un "me.visible = True/False" marcherait. Mais VBA pour Excel ne le permet pas. Je doit donc utiliser le couple (infernal) me.hide et me.show. Gros souci, chaque me.show appelle la procédure évènementielle UserForm_Activate et donc tout ce qui vient après n'est pas exécutée immédiatement mais quand je ferme le userform.
J'ai tracé tout ça avec une série de debug.print, je simule le comportement souhaité de ma procédure avec le bouton "BoutonTestHideShow" dans le userform
Marche à suivre pour reproduire cette trace dans la fenêtre d'exécution : cliquer sur "Lancer le test" puis sur "Test hide/show" (vous pouvez cliquer plusieurs fois) et pour finir sur "Fermer".
Que puis-je faire pour afficher/masquer le userform sans que UserForm_Activate ne s'exécute ?
Par avance, je vous remercie de vos réponses.
Guy
J'ai un petit problème avec le masquage et l'affichage d'un userform. J'ai joint un petit fichier de simulation pour que vous puissiez tester.
Mon userform est grand et donc masque une partie de l'écran. A un moment, je pose une question à propos de la feuille Excel sélectionnée et pour que l'utilisateur puisse bien voir la feuille, je souhaite masquer le userform puis le réafficher.
Bêtement, je pensais qu'avec un "me.visible = True/False" marcherait. Mais VBA pour Excel ne le permet pas. Je doit donc utiliser le couple (infernal) me.hide et me.show. Gros souci, chaque me.show appelle la procédure évènementielle UserForm_Activate et donc tout ce qui vient après n'est pas exécutée immédiatement mais quand je ferme le userform.
J'ai tracé tout ça avec une série de debug.print, je simule le comportement souhaité de ma procédure avec le bouton "BoutonTestHideShow" dans le userform
Code:
LancerLeTest_Clic:début
UserForm_Initialize:debut
ActionInitiale
UserForm_Initialize:fin
UserForm_Activate
BoutonTestHideShow_Click:début
UserForm_Activate
BoutonFermer_Click:debut
BoutonFermer_Click:fin
BoutonTestHideShow_Click:fin
LancerLeTest_Clic:fin
Marche à suivre pour reproduire cette trace dans la fenêtre d'exécution : cliquer sur "Lancer le test" puis sur "Test hide/show" (vous pouvez cliquer plusieurs fois) et pour finir sur "Fermer".
Que puis-je faire pour afficher/masquer le userform sans que UserForm_Activate ne s'exécute ?
Par avance, je vous remercie de vos réponses.
Guy