Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

deudecos

XLDnaute Impliqué
Bonsoir à toutes et à tous.

Malgré mes recherches et mes essais, je n'ai pas trouvé le moyen d'ouvrir et de fermer un userform depuis un bouton sur un autre userform ouvert en vbmodeless. Avec un truc du genre: si userform2 ouvert, alors le fermer, et lycée de versailles!.
Si vous voyez ce que je veux dire et que la solution existe, ben... je suis preneur!!!

Bonne soirée.

Olivier
 

dmoluc

XLDnaute Occasionnel
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

bonsoir

si lancement par bouton

Private Sub CommandButton1_Click()
on error goto ETIQUETTE
UserForm1.Show
Unload userform2
ETIQUETTE :
End Sub

je ne vois pas trop d'autres moyens pour fermer un userform si on en ouvre un autre, bien sur nom des userform à adapter
cordialement
 
Dernière édition:

deudecos

XLDnaute Impliqué
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonjour dmoluc, le forum,

En fait, je pense m'être mal exprimé...
Ce que je souhaite, c'est, à partir d'un même bouton sur le userform1, ouvrir ou fermer un autre userform selon s'il est déjà ouvert ou non.
Avec une formule du genre:
If UserForm2=Open then
Close
Else
load UserForm2
UserForm2.Show
End If
Mon problème étant que je ne parviens pas à trouver la bonne formule...

Bonne journée.

Olivier
 

dmoluc

XLDnaute Occasionnel
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonjour

je ne sais pas si cela ira mais j'ai contourné le problème avec un ToogleBouton à voir fichier ci-joint

cordialement
 

Pièces jointes

  • UserFormShow.xls
    56 KB · Affichages: 204

deudecos

XLDnaute Impliqué
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonsoir camarchepas, dmoluc, le forum,

De toute évidence, la façon dont je souhaite faire les choses n'est pas possible, mais vous m'avez mis tous les deux sur une piste que je vais m'empresser de peaufiner pour arriver à mes fins par des chemins de traverse...;-)
Merci à vous deux et bonne soirée.

Olivier
 

deudecos

XLDnaute Impliqué
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonjour Fo_rum et le forum,

C'est presque ce que je voulais, seul petit problème, si je rajoute quelque chose dans un des userform, par exemple un textbox, ben là, plus rien ne fonctionne... Mais peut-être est ce du au fait que mon Excel tourne sous émulation de Win Xp, le tout sur un Mac (Ben oui Office pour Mac ça crains!) Des fois ça me fait des trucs un peu bizarres...
Bonne journée.

Olivier
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonjour deudecos,

Un autre essai (converti de 2010 en 2003):
VB:
If UserForm2.Visible Then UserForm2.Hide Else UserForm2.Show
 ou
 If UserForm2.Visible Then Unload UserForm2 Else UserForm2.Show
 

Pièces jointes

  • Deux Userforms v1.xls
    46.5 KB · Affichages: 138

Fo_rum

XLDnaute Accro
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonjour,

je ne m'étais préoccupé que du "vice, m'as tu vu, et versa" .D'où les 2 boutons.
Pour garder les données, comme l'indique mapomme:D, il ne faut pas décharger mais cacher.
Donc un autre essai.
 

Pièces jointes

  • UsFDépendants2.xls
    38 KB · Affichages: 133

deudecos

XLDnaute Impliqué
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonjour à tous,

Tout d'abord, désolé pour la réponse tardive (toujours que peu de temps entre deux chantiers! ;-) ).

Merci pour vos réponses toutes très intéressantes, j'en apprends sans arrêt!
Bonne journée

Olivier
 

fhoest

XLDnaute Accro
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonsoir à tous,

petit remaniement l'exemple Togglebutton de "Dmoluc" :eek: avec un Commandbutton:

Code:
Sub choix(bouton As CommandButton)
On Error GoTo ETIQUETTE
With bouton
    If .BackColor = vbGreen Then
        UserForm2.Show
        .Caption = "Fermer"
    .BackColor = vbYellow
    Else
        Unload UserForm2
        .BackColor = vbGreen
        .Caption = "Afficher"
    End If
End With
Exit Sub
ETIQUETTE:
End Sub
Private Sub CommandButton1_Click()
Call choix(CommandButton1)
End Sub

Private Sub UserForm_Initialize()
Call choix(CommandButton1)
End Sub
A+
 

Pièces jointes

  • Bouton_identique_OF_form_fhoest.xls
    55.5 KB · Affichages: 137
Dernière édition:

dmoluc

XLDnaute Occasionnel
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonsoir,
je n'ai pas encore compris ce que voulais deudecos :confused: mais merci à toi "fhoest" pour cette solution qui pourrait bien me servir un jour et qui va enrichir mes maigres connaissances en vba : je ne savais pas que cette petite manip était applicable à un commandbouton

merci et A+ sur le site
 

Papou-net

XLDnaute Barbatruc
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

Bonsoir le fil,
Bonsoir deudecos,

Le problème soulevé attisant ma curiosité, je m'immisce dans la discussion pour proposer une solution qui, si j'ai bien compris, devrait répondre à la question initiale.

Le userform2 ne peut être ouvert ou fermé (ou plus exactement caché) que par le bouton de userform1. Sa croix de fermeture est désactivée.

Quitter le formulaire 1 ferme et décharge le formulaire 2.

Espérant avoir été utile.

Cordialement.
 

Pièces jointes

  • deudecos.xls
    49 KB · Affichages: 123
  • deudecos.xls
    49 KB · Affichages: 145
  • deudecos.xls
    49 KB · Affichages: 168

Si...

XLDnaute Barbatruc
Re : Peut on ouvrir et fermer un userform avec un même bouton sur un autre userform?

salut

Si... on part sur un seul bouton, avec un bouton bascule, cela devrait suffire dans le premier USF :
Code:
Private Sub ToggleButton1_Click()
  ToggleButton1.Caption = IIf(ToggleButton1, "fermer", "ouvrir")
  If ToggleButton1 Then UserForm2.Show Else UserForm2.Hide
  ToggleButton1.BackColor = IIf(ToggleButton1, vbGreen, vbYellow) 'pas nécessaire
End Sub
et dans le second comme le suggère Si... bien Papou-net;) :
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  Cancel =  CloseMode = 0
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 174
Membres
103 152
dernier inscrit
Karibu