Fermeture d'un UserForm

Bonjour à tous,

J'ai un UserForm, dans lequel se trouve une ListBox.

Je voudrais qu'après sélection d'une ligne que mon UserForm se ferme et que ma ligne ne soit plus sélectionnée.

Pourriez vous m'aider?

Merci par avance.

Dim témoin

Private Sub CommandButton3_Click()
Selection_Onglets.Hide
End Sub

Private Sub UserForm_Initialize()
   Me.ListBox1.Clear
   For i = 2 To ActiveWorkbook.Sheets.Count
     Me.ListBox1.AddItem Sheets(i).Name
     Me.ListBox1.Selected(i - 2) = Sheets(i).Visible

   Next i
   témoin = True
End Sub
Private Sub ListBox1_change()
  If témoin Then
    For i = 0 To Me.ListBox1.ListCount - 1
      f = ListBox1.List(i)
      Sheets(f).Visible = Me.ListBox1.Selected(i)

    Next i
    Sheets(ListBox1.Value).Select
Unload Selection_Onglets
  End If
End Sub

Bonjour djodjo,

Private Sub ListBox1_Click()
    Unload Me
End Sub

A tester,

Gabin37,

Cela ne fonctionne pas, je n'arrive plus ouvrir mon UserForm

Comment est-il ouvert ?

Par la macro:

Sub Ouvre_select_onglet()
'
Selection_Onglets.Show
End Sub

Etrange.. je ne vois pas d'anomalies.

Lorsque le UserForm se décharge à la fin de la macro

Private Sub ListBox1_change()

Vous arriviez à le rouvrir ensuite ?

Le soucis est qu'il ne se ferme pas tout seul et qu'il reste sur la dernière sélection. Ce qui empêche de rouvrir cette même sélection si besoin

oui

Bonsoir

Si l'ouverture du USF se fait par bouton et que le USF s'ouvre par dessus le bouton et sue la listbox se trouve également au-dessus du bouton, alors au relâché du clic le code du clic sur la listbox est déclenché, le USF se ferme... Non ?

@ bientôt

LouReeD

Bonsoir le fil, bonsoir le forum,

Sans le fichier qui va bien difficile de bien comprendre...

Plusieurs choses ne me paraissent pas claires :
1. Pourquoi tu vides la Listbox1 à l'initialisation ?
2. Comment à l'initialisation de l'UserForm, un élément de la Listbox1 peut-il être sélectionné ?
2. Pourquoi le CommandButton3 masque l'userForm et ne le ferme pas ?

Je pense que ton soucis vient de là... Ou bien, le code de l'Initialisation devrait plutôt être celui de l'Activation de l'UserForm.

Bonjour,

Voici le lien vers une discussion qui résume ce que jr disais plus haut.

@ bientôt

LouReeD

Donc voici mon fichier effectivement pour faire plus simple :

A l’ouverture de celui-ci je clique sur « Sélectionnez votre onglet », qui m’ouvre mon Userform. Comme on peu le constater la dernière sélection reste surlignée en bleu, ce qui rend à nouveau une re sélection impossible et une fois la sélection faite l’UserForm ne se ferme pas.

PS pour revenir à l’onglet Acceuil il faut utiliser la combinaison « Alt B » (oui j’ai vue Acceuil est mal orthographié) .

Bonjour le fil, bon jour le forum,

J'aurais plutôt codé comme ça :

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim I As Integer 'déclare la variable I (Incrément)
For I = 2 To ActiveWorkbook.Sheets.Count 'boucle sur tous les onglets du classeur (en partant du second)
    Me.ListBox1.AddItem Sheets(I).Name 'ajoute le nom de l'onglet à la ListBox1
Next I 'prochain onglet de la liste
End Sub

Private Sub ListBox1_change() 'au changement dans la ListBox1
Dim I As Integer 'déclare la variable I (Incrément)
Dim F As String 'déclare la variable F (Feuille)

For I = 0 To Me.ListBox1.ListCount - 1 'boucle sur tous les éléments de la Listbox1
    F = ListBox1.List(I) 'définit la feuille F
    Sheets(F).Visible = Me.ListBox1.Selected(I) 'affiche/masque la feuille f en fonction de sa sélection
Next I 'prochain élément de la boucle
Sheets(ListBox1.Value).Activate 'active l'onglet de l'élément sélectionné
Unload Me 'vide et ferme l'UserForm1
End Sub

Private Sub CommandButton3_Click()
Unload Me 'vide et ferme l'UserForm1
End Sub

Hide et Unload sont bien différents. Le premier ne fait que masquer l'UserForm mais garde les données alors que Unload a deux actions, il vide les les données et ferme l'UserForm. Ton bouton Quitter ne faisait que le masquer...

Bonjour ThauThème, bonjour à tous, bonjour le Forum....

SUPER, effectivement cela fonctionne parfaitement. Un grand merci à vous tous

Rechercher des sujets similaires à "fermeture userform"