Fermer des forms portant le même nom. [Résolu]

Signaler
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
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 !
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010

Merci beaucoup je vais testé, par contre juste une petite erreur tu a mis end if a la place de next.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
Oui exact, à corriger donc ;)