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...