Fermer des forms portant le même nom.

Résolu
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010 - 9 sept. 2006 à 02:20
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 9 sept. 2006 à 10:54
Re :)

le problème est en fait trés simple, enfin je pense lol.
Voila en cherchant un moyen d'ouvrir plusieur fois le même form j'ai trouvé la source 30625 qui m'a appris comment ouvrir un meme form plusieur fois.
Le code mar trés bien le voici dailleur:
<ol class="csCode"><li><samp>'=================================================================</samp></li><li><samp>'=================================================================</samp></li><li><samp>'à mettre dans un formulaire se nommant ButtonForm avec dedans un CommandButton</samp></li><li><samp>'=================================================================</samp></li><li><samp>'=================================================================</samp></li><li></li><li></li><li>
Private
Sub
CmdOk_Click()
</li><li>Unload Me <samp>'décharge le formulaire lorsque l'on clique sur OK</samp></li><li>
End
Sub
</li><li></li><li></li><li></li><li><samp>'=================================================================</samp></li><li><samp>'=================================================================</samp></li><li><samp>'à mettre dans un formulaire se nommant ButtonGen avec dedans deux CommandButtons</samp></li><li><samp>'=================================================================</samp></li><li><samp>'=================================================================</samp></li><li></li><li></li><li>
Private
Function
CréerDesForm() <samp>'fonction qui permet d'afficher le même formulaire plusieurs fois</samp></li><li>    
Dim
NewForm As ButtonForm <samp>'Défini la variable NewFrom comme le formulaire ButtonFrom</samp></li><li>    
</li><li>    
Set
NewForm = New ButtonForm <samp>'attribue à la variable NewForm un nouveau formulaire ButtonForm</samp></li><li>    
</li><li>    NewForm.
Show
<samp>'Montre le formulaire créé</samp></li><li>
End
Function
</li><li></li><li>
Private
Sub
CmdNo_Click()
</li><li>
End
<samp>'si on clique sur non quit le programme</samp></li><li>
End
Sub
</li><li></li><li>
Private
Sub
CmdYes_Click() <samp>'sub s'éxécutant lorsque l'on clique sur oui</samp></li><li></li><li>x 50 <samp>'x nombre de formulaire (alias boutons) à afficher</samp></li><li>    
</li><li>    
While
x <> 0 <samp>'tant que x est différent de 0 éxécute le code entre While et Wend</samp></li><li>        
</li><li>        x = x - 1 <samp>'enlève une unité à x</samp></li><li>        CréerDesForm <samp>'éxécute la fonction qui permet d'afficher le même formulaire plusieurs fois</samp></li><li>    
</li><li>    
Wend
</li><li></li><li>
End
Sub
</li></ol>Bien entendu je vais le modifier pour qu'il soit utile dans mon programme, mais je voudrai mettre un boutton pour fermer tous les formulaire d'un coup.
j'ai essayer NewForm.hide sans résultat ainsi que ButtonForm.hide sans aucun résulat, j'ai aussi essayer unload ButtonForm  et unload NewForm.

Y a t'il un moyen pour fermer ou décherger toutes les form d'un coup?

Ou bien est ce que je doit faire un enumwindow et fermé d'est que la fenetre contient le nom recherché?

Merci et bonne nuit je vais me couché :)

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 sept. 2006 à 06:44
Il te faut parcourir ta collection de fenêtre, par exemple :

For each oForm in Forms

    if oForm.Name = "toto" then

       Call Unload(oForm)
   
    end if

end if

Utilise Unload et non Hide pour décharger la feuille de la mémoire et non uniquement la masquer à l'écran ! Sinon fuite de mémoire !
3
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
9 sept. 2006 à 10:18
Merci beaucoup je vais testé, par contre juste une petite erreur tu a mis end if a la place de next.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 sept. 2006 à 10:54
Oui exact, à corriger donc ;)
0
Rejoignez-nous