VBA Excel activer 1 UserForm depuis un autre?
Résolu
pijaku
Messages postés
12263
Date d'inscription
Statut
Modérateur
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je me bas avec les propriétés "modales" de deux userforms... Grrr!!!
Le principe de ce que je souhaites réaliser:
J'ai deux Userform. Lorsque je lance le fichier, les 2 userforms s'affichent côte à côte. Jusqu'ici pas de souci!
A l'aide d'un bouton sur l'un, je souhaite activer le deuxième, et réciproquement, tout en laissant les deux apparants!
Bien sur, Hide aurait été très utile, mais je souhaite vraiment garder les 2 userform visibles à l'écran.
Est ce possible?
Si oui comment?
Merci beaucoup de vos contributions et/ou conseils avisés...
Excel 2003 (peu important car >97, mais bon j'le mets quand même...)
Je me bas avec les propriétés "modales" de deux userforms... Grrr!!!
Le principe de ce que je souhaites réaliser:
J'ai deux Userform. Lorsque je lance le fichier, les 2 userforms s'affichent côte à côte. Jusqu'ici pas de souci!
A l'aide d'un bouton sur l'un, je souhaite activer le deuxième, et réciproquement, tout en laissant les deux apparants!
Bien sur, Hide aurait été très utile, mais je souhaite vraiment garder les 2 userform visibles à l'écran.
Est ce possible?
Si oui comment?
Merci beaucoup de vos contributions et/ou conseils avisés...
Excel 2003 (peu important car >97, mais bon j'le mets quand même...)
A voir également:
- VBA Excel activer 1 UserForm depuis un autre?
- Liste déroulante excel - Guide
- Activer office gratuitement - Accueil - Bureautique
- Comment activer windows 10 - Guide
- Word et excel gratuit - Guide
- Cle pour activer windows 10 gratuitement - Guide
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...
Pour moi cela fonctionne si je mets :
Dans l'USF1 :
Dans l'USF2 :
Et pour lancer l'affichage des 2 UserForms :
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
Ben, vi...allez au travail ;)
Bonne journée à toi aussi et de rien pour mon aide, finalement peu utile ^^
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...