Formulaire dans une variable : Help !!!

Résolu
Signaler
Messages postés
10
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
26 février 2007
-
Messages postés
10
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
26 février 2007
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Ce que tu as écrit devant fonctionner sans aucun problème, je pense que tu as une "blague" ailleurs dans ton code.
Messages postés
10
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
26 février 2007

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
Messages postés
10
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
26 février 2007

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.