Userform.show

celinevba Messages postés 2 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 12 juillet 2002 - 12 juil. 2002 à 14:52
stephseiy Messages postés 3 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 1 juillet 2003 - 18 juil. 2003 à 11:52
Salut tous !
J'ai un projet en VBA Excel contenant plusieurs userform. Il est possible de naviguer d'une feuille l'autre. Pour cela, j'ai cod par exemple pour que la premire feuille s'affiche :

Sub Initialisation()
Accueil.Show 'accueil est le nom d'une de mes userform
End Sub

ou aussi d'autres fois :
Private Sub CommandButton7_Click()
Unload Me
userform1.Show
End Sub

Cette procdure permet effectivement d'afficher la feuille accueil puis excute le code associ cette feuille. le problme qu'au bout d'une dizaine de changemente de feuille, une erreur se produit : erreur 28 espace pile insuffisant. J'ai ensuite effectu un dbogage avec un pas pas dtaill et je me suis rendue compte que lorsqu'il y a "xxx.show" alors l'excution ne va pas par le "end sub" donc ne dpile pas la pile.
Comment faire???
Merci de votre aide.

3 réponses

cs_DeathAngel Messages postés 117 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 13 avril 2007
12 juil. 2002 à 15:31
Salut céline !

J'ai jamais testé les userform sous excel,
mais à mon avis, tu devrais essayer comme ça :

Private Sub CommandButton7_Click()
Unload Me
End Sub

Private Sub Form_Unload()
userform1.Show
End Sub

De cette façon, tu force ton formulaire à se décharger, et pendant qu'il se décharge, il en charge un autre.
Mais c'est sans garanties hein :)

Voilou

@peluche et bon dev'
DA
0
celinevba Messages postés 2 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 12 juillet 2002
12 juil. 2002 à 15:51
Salut DeathAngel,

Merci d'avoir essay de m'aid mais cela n'a pas fonctionn.
Je pense que c'est parce que sous VBA, il n'y a pas load comme venement pour les userform (quivalent des forms de vb me semble-t-il.).

Celine
0
stephseiy Messages postés 3 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 1 juillet 2003
18 juil. 2003 à 11:52
Je pense que tu prends la question à l'envers.
Voila ce que j'utilise
pour le userform1 :
'*****
Private Sub UserForm_Activate()
Unload UserForm2
End Sub
Private Sub UserForm_Click() '** ou un bouton
UserForm1.Hide
End Sub
Private Sub UserForm_Deactivate()
Load UserForm2
UserForm2.Show
End Sub
'*******
Pour la userform2:
'*****
Private Sub UserForm_Activate()
Unload UserForm1
End Sub
Private Sub UserForm_Click() '** ou un bouton
UserForm2.Hide
End Sub
Private Sub UserForm_Deactivate()
Load UserForm1
UserForm1.Show
End Sub
'*****

Bien sur ce code doit être adapte. Je n'ai pas eu de pb avec cette méthode pour l'instant.

En espérant que cela réponde à ta question...
0