VBA Excel activer 1 UserForm depuis un autre?
Résolu/Fermé
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
-
20 juil. 2011 à 16:40
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 21 juil. 2011 à 13:59
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 21 juil. 2011 à 13:59
A voir également:
- VBA Excel activer 1 UserForm depuis un autre?
- Liste déroulante excel - Guide
- Comment activer windows 10 - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Activer pavé tactile windows 10 - Guide
1 réponse
aquarelle
Messages postés
7140
Date d'inscription
dimanche 8 avril 2007
Statut
Modérateur
Dernière intervention
25 mars 2024
1 302
20 juil. 2011 à 19:22
20 juil. 2011 à 19:22
Bonsoir,
Je ne sais pas si cela te conviendra mais tu peux passer tes userforms en non modal :
Il te suffira de cliquer sur la userform de ton choix pour l'activer.
Cela permet aussi de travailler sur ta feuille de calcul sans fermer tes userforms
Bonne soirée
Je ne sais pas si cela te conviendra mais tu peux passer tes userforms en non modal :
UserForm1.Show 0 UserForm2.Show 0
Il te suffira de cliquer sur la userform de ton choix pour l'activer.
Cela permet aussi de travailler sur ta feuille de calcul sans fermer tes userforms
Bonne soirée
21 juil. 2011 à 08:57
En fait, je connais la propriété modale des USF.
Cependant, ce que je souhaite faire c'est une activation automatique de l'USF2 à partir de l'USF1 sans que l'utilisateur n'ait à intervenir...
Quelque chose comme :
Dans l'USF1 :
Dans l'USF2 :
Alors j'ai essayé de remplacer : UserForm1.Activate par : UserForm1.Show 1 , userForm1.Show 0, mais j'obtiens toujours le message d'erreur : "vous ne pouvez pas afficher un USF en mode modal gna gna gna..."
Bah, si c'est pas possible, j'en masquerai un sur les deux avec Hide...
21 juil. 2011 à 11:14
Pour moi cela fonctionne si je mets :
Dans l'USF1 :
Dans l'USF2 :
Et pour lancer l'affichage des 2 UserForms :
21 juil. 2011 à 12:10
Le problème de "Load" c'est qu'il recharge mon Usf en mémoire. Or dans ma procédure Initialise, je remets à zéro certaines de mes variables public. Donc, j'ai peur que Load ne me remette systématiquement à zéro des variables qui évoluent au fur et à mesure de l'utilisation de mes userform.
J'ai donc fini par trouver une solution alternative. Je la livre ici, ça peux servir...
1- remplacer les appels des procédures : Private Sub UserForm_Activate() par : Sub UserForm1_Activate() (remplacer UserForm1 par le nom de votre UserForm)
2- les appeler depuis l'autre Userform par :
3- dans chaque userform placer un textbox (que l'on rendra invisible)
Alors le code global donne :
Dans l'USF1 :
Dans l'USF2 :
Ci-joint un classeur exemple
Ca pourrait faire une astuce CCM non?
Bonne journée à toi et merci encore
21 juil. 2011 à 13:56
Ben, vi...allez au travail ;)
Bonne journée à toi aussi et de rien pour mon aide, finalement peu utile ^^
21 juil. 2011 à 13:59
J'm'y mets dès que j'aurais fini ce boudiou de classeur!!!...
Si si ton aide fut utile car sans toi, j'me s'rais pas cassé le derche davantage et j'aurais utilisé simplement hide...