Formulaire dans une variable : Help !!!

Résolu
cs_azazel Messages postés 10 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 26 février 2007 - 26 févr. 2007 à 14:52
cs_azazel Messages postés 10 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 26 février 2007 - 26 févr. 2007 à 17:13
Bonjour à tous,

Voilà mon problème : j'essaye de stocker un formulaire actif dans une variable déclaré en objet, mais lorsque je décharge ce form avec 'unload', ma variable se vide, et je ne peux donc plus rappeler mon formulaire. Voilà mon code :

J'ai un module qui déclare ma variable, et qui charge UserForm1 :
Public FormulaireActif as Object
Sub Demarrage()
   Load Userform1
   Userform1.show
End Sub

J'ai deux Forms nommés 'UserForm1' et 'UserForm2' dans lesquels j'ai un bouton 'CommandButton1' avec :


'Contenu de mon UserForm1 :
Private Sub UserForm_Initialize()
End Sub
Private Sub CommandButton1_Click()
   Set FormulaireActif = me 'je stocke mon formulaire actif
   Unload me 'je pense que c'est là qu'il me décharge ma variable, et je ne comprend pourquoi il ne me conserve pas sa valeur !
   load Userform2
   UserForm2.show
End Sub

'Contenu de mon UserForm2 :
Private Sub UserForm_Initialize()
End Sub
Private Sub CommandButton1_Click()
   Unload me
   load FormulaireActif 'c'est là que je me rend compte que ma variable est vide
   FormulaireActif.show
End Sub

J'aurai pu utiliser hide, plutôt que de le décharger, mais j'ai besoin de réinitialiser mon UserForm1. Est-ce que quelqu'un a une solution? Si quelqu'un a une explication et encore mieux une solution...

Merci d'avance pour votre aide.




 

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 févr. 2007 à 16:49
Quelque chose me dit que tu n'es pas en VB6 mais en VBA
Et si ce code marche parfaitement en VB6, il semblerait que en VBA il faille remplacer Set FormulaireActif me par Set FormulaireActif New UserForm1

Par contre j'ai pas regarder au niveau mémoire si ça provoque pas une fuite

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
26 févr. 2007 à 15:24
Ce que tu as écrit devant fonctionner sans aucun problème, je pense que tu as une "blague" ailleurs dans ton code.
0
cs_azazel Messages postés 10 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 26 février 2007
26 févr. 2007 à 15:34
Et non pourtant, c'est bien là que je me casse la tête : j'ai toujours une erreur '361' lorsqu'il tente de rappeler FormulaireActif !

Pour lui FormulaireActif ne contient plus rien
0
cs_azazel Messages postés 10 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 26 février 2007
26 févr. 2007 à 17:13
Merci Casy,

Je suis bien en VBA. Il est vrai que c'est une "petite" précision que j'aurai du apporter dès le départ

Et dire qu'il suffisait juste d'un petit "new"...(d'ailleurs pourquoi?, j'aimerai bien comprendre).

Dans tous les cas, ça fonctionne bien mieux comme ça, et je t'en remercie.
0
Rejoignez-nous