Afficher/cacher onglet avec userform
Résolu/Fermé
Camillegbg
Messages postés
33
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
-
14 avril 2010 à 16:31
Camillegbg Messages postés 33 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 - 15 avril 2010 à 14:15
Camillegbg Messages postés 33 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 - 15 avril 2010 à 14:15
A voir également:
- Afficher/cacher onglet avec userform
- Cacher conversation whatsapp - Guide
- Rouvrir onglet fermé - Guide
- Onglet privé - Guide
- Afficher mot de passe wifi android - Guide
- Cacher application android - Guide
2 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
14 avril 2010 à 16:46
14 avril 2010 à 16:46
Bonjour,
Je continue donc la discussion ici .
Une idée dans l'Userform, il faut bien vérifier que les deux listbox s'appellent bien ListBox1 et ListBox2 (c'est la propriété Name)
A+
Je continue donc la discussion ici .
Une idée dans l'Userform, il faut bien vérifier que les deux listbox s'appellent bien ListBox1 et ListBox2 (c'est la propriété Name)
A+
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
15 avril 2010 à 12:02
15 avril 2010 à 12:02
Bonjour,
Voila j'ai corrigé les erreurs dont tu parles.
L'inversion était due tout simplement à l'inversion des macro associées.
J'ai enlevé l'onglet Start
J'ai corrigé les erreurs de programmation qui faisaient disparaitre les feuilles
N'hésite pas si il y a encore des anomalies
Voila code corrigé
A+
Voila j'ai corrigé les erreurs dont tu parles.
L'inversion était due tout simplement à l'inversion des macro associées.
J'ai enlevé l'onglet Start
J'ai corrigé les erreurs de programmation qui faisaient disparaitre les feuilles
N'hésite pas si il y a encore des anomalies
Voila code corrigé
A+
Private Sub UserForm_Initialize() Dim sht As Variant Dim shts As Sheets For Each sht In ActiveWorkbook.Sheets If sht.Name <> "Start" Then If sht.Visible Then ListBox1.AddItem sht.Name Else: ListBox2.AddItem sht.Name End If End If Next sht End Sub '*** Button to Hide all Visible sheets Private Sub MoveAllToRight_Click() 'Add all For i = 0 To ListBox1.ListCount - 1 ListBox2.AddItem ListBox1.List(i) Next i 'Remove all For i = 0 To ListBox1.ListCount - 1 ListBox1.RemoveItem (0) Next i End Sub '***Button to hide selected visible sheets Private Sub MoveSelectedToRight_Click() Dim CountVisibleSheets, LastSelection, j As Integer CountVisibleSheets = ListBox1.ListCount - 1 'Add selected sheets to Hidden sheets listbox For i = 0 To CountVisibleSheets If ListBox1.Selected(i) Then ListBox2.AddItem ListBox1.List(i) End If Next i 'Remove selected sheets from Visible sheets list j = 0 Do Until j = ListBox1.ListCount If ListBox1.Selected(j) Then ListBox1.RemoveItem (j) LastSelection = j Exit Do j = j - 1 End If j = j + 1 Loop End Sub '*** Button to Unhide selected Hidden sheets Private Sub MoveSelectedToLeft_Click() Dim CountVisibleSheets, LastSelection As Integer CountVisibleSheets = ListBox2.ListCount - 1 For i = 0 To CountVisibleSheets If ListBox2.Selected(i) Then ListBox1.AddItem ListBox2.List(i) End If Next i j = 0 Do Until j = ListBox2.ListCount If ListBox2.Selected(j) Then ListBox2.RemoveItem (j) LastSelection = j Exit Do End If j = j + 1 Loop End Sub '*** Button to Unhide all Hidden sheets Private Sub MoveAllToLeft_Click() Dim CountHiddenSheets As Integer CountHiddenSheets = ListBox2.ListCount - 1 For i = 0 To CountHiddenSheets ListBox1.AddItem ListBox2.List(i) Next i For i = 0 To CountHiddenSheets ListBox2.RemoveItem (0) Next i End Sub '*** Cancel dialog button Private Sub CommandCancel_Click() Unload FormWorksheets End Sub '*** Submit selection for hiding and unhiding sheets Private Sub CommandHideUnhide_Click() For i = 0 To ListBox1.ListCount - 1 ActiveWorkbook.Sheets(ListBox1.List(i)).Visible = True Next i For i = 0 To ListBox2.ListCount - 1 If i = ActiveWorkbook.Sheets.Count - 1 Then MsgBox "At least one sheet should be visible" Exit For Else ActiveWorkbook.Sheets(ListBox2.List(i)).Visible = False End If Next i Unload FormWorksheets End Sub
Camillegbg
Messages postés
33
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
1
15 avril 2010 à 14:15
15 avril 2010 à 14:15
Merci beaucoup , c'est parfait !
A plus
A plus
15 avril 2010 à 11:08
J'ai réussi à le faire marcher , le fichier est accessible ici : http://www.cijoint.fr/cjlink.php?file=cj201004/cijmor289C.xls
Mais j'ai des petites questions auxquelles tu pourras peut-être m'apporter des réponses :
1. je ne comprends pas pourquoi les boutons > et >> sont inversés... pourtant les macros sont bien telles quelles. les boutons < et << fonctionnent correctement.
2. lorsque je choisis un onglet de la lite de gauche et clic sur >> , il passe alors à droite, mais tous les onglets en dessous de lui disparaisse. De même que lorsque plusieurs onglets sont dans la liste de droite, je sélectionne l'un d'entre eux et clic sur < , ceux en dessous de lui disparaisse. Il doit être nécessaire d'ajouter qlq part un refresh dans les boucles pour que l'userform affiche les onglets dans les bonnes colonnes...
3. Il est indispensable d'exclure l'onglet Start , pour toujours avoir acces au bouton qui lance la macro. Je sais qu'on peut la lancer sans le bouton, mais l'idée est de se simplifier la vie et de rendre le tout ergonomique.
J'ai ajouté un unload à la fin de la Commande HideUnhide pour fermer l'userform.
Je te remercie pour tes réponses dans cette discussion, et dans la précedente également ! :)
A +