Userform.show

Signaler
Messages postés
2
Date d'inscription
mardi 2 juillet 2002
Statut
Membre
Dernière intervention
12 juillet 2002
-
Messages postés
3
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
1 juillet 2003
-
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

Messages postés
117
Date d'inscription
vendredi 12 avril 2002
Statut
Membre
Dernière intervention
13 avril 2007

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
Messages postés
2
Date d'inscription
mardi 2 juillet 2002
Statut
Membre
Dernière intervention
12 juillet 2002

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
Messages postés
3
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
1 juillet 2003

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