affichage feuilles masquees

  • Initiateur de la discussion Initiateur de la discussion biomed
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

biomed

XLDnaute Junior
bonjour a tous et a toutes,
je vous contacte pour une amelioration d'une macro qui permet de lister les feuilles d'un classeur.
mon probleme est que cette macro ne peux pas afficher les feuilles masquées.
auriez-vous une solution
merci beaucoup d'avance
la voici:
Sub AccesSection()
'code diffusé par René Roy, mpfe
' Permet l'affichage d'une boîte de dialogue pour l'accès
' à la feuille de son choix
Dim i As Integer
Dim TopPos As Integer
Dim SheetCount As Integer
Dim PrintDlg As DialogSheet
Dim CurrentSheet, FeuilleDépart As Worksheet
Dim cb As OptionButton
Application.ScreenUpdating = False

' Ajoute une feuille de dialogue temporaire
Set CurrentSheet = ActiveSheet
Set FeuilleDépart = ActiveSheet
Set PrintDlg = ActiveWorkbook.DialogSheets.Add
PrintDlg.Visible = xlSheetHidden

SheetCount = 0

' Ajoute les boutons d'option
TopPos = 40
For i = 1 To ActiveWorkbook.Worksheets.Count
Set CurrentSheet = ActiveWorkbook.Worksheets(i)
' Ne tient pas compte des feuilles vide ou masquées
If Application.CountA(CurrentSheet.Cells) <> 0 And _
CurrentSheet.Visible Then
SheetCount = SheetCount + 1
PrintDlg.OptionButtons.Add 78, TopPos, 150, 16.5
PrintDlg.OptionButtons(SheetCount).Text = _
CurrentSheet.Name
If CurrentSheet.Name = FeuilleDépart.Name Then _
PrintDlg.OptionButtons(SheetCount).Value = xlOn
TopPos = TopPos + 13
End If
Next i

' Positionne les boutons OK et Annuler
PrintDlg.Buttons.Left = 240

' Dimensionne la hauteur, la largeur et le titre de la bte de dialogue
With PrintDlg.DialogFrame
.Height = Application.Max _
(68, PrintDlg.DialogFrame.Top + TopPos - 34)
.Width = 230
.Caption = 'A quelle feuille souhaitez-vous accéder ? '
End With

' Change l'ordre de tabulation des boutons OK et Annuler
' afin de donner le focus au premier bouton d'option
PrintDlg.Buttons('Button 2').BringToFront
PrintDlg.Buttons('Button 3').BringToFront

' Affiche la boîte de dialogue
FeuilleDépart.Activate
Application.ScreenUpdating = True
If SheetCount <> 0 Then
If PrintDlg.Show Then
Application.ScreenUpdating = False
For i = 1 To SheetCount
If PrintDlg.OptionButtons(i).Value = xlOn Then
Worksheets(PrintDlg.OptionButtons(i).Caption).Activate
'autre code selon besoin
End If
Next i
End If
Else
MsgBox 'Toutes les feuilles sont vides.'
End If

' Supprime la feuille de dialogue temporaire (sans message d'avertissement)
Application.DisplayAlerts = False
PrintDlg.Delete
End Sub
 
rebonjour,
me revoila avec la macro de visualisation
j'ai reussi a trover la modif pour que l'usf affiche bien les feuilles qui sont masquée, mais je ne vois pas comment modifier le code du bouton ok afin qu'il me les affiches
Pouvez-vous m'aider s'il vous plait
merci
Ps ci-joint un fichier d'essai [file name=tests_visu.zip size=13230]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/tests_visu.zip[/file]
 

Pièces jointes

Je comprends bien la partie affichage et réalisation du dialogue.
J'ouvre Excel avec 1 feuille et j'obtiens un dialogue avec déjà 2 boutons d'option (variables nommées cb alors que la convention est plutôt opt), la barre de titre n'affiche pas tout le titre !!!

Quand je clique sur le bouton Visualisation, j'obtiens donc un dialogue et si je clique un bouton d'option puis sur OK, il ne se passe rien...

Pourrais-tu ajouter des commentaires sur la logique de ton programme ??? En effet je ne vois pas où tu teste le nombre de feuilles, ni comment tu alimentes ta liste de boutons d'options.

Jette un oeil sur le fichier joint.
 
bonjour et merci de ton aide
justement la ou est mon probleme c'est que cela ne fonctionne que si les feuilles ne sont pas masquee
Dans mon exemple, affiche les feuilles dans le fichier, tu vera alors que lorsque l'on appuie sur ok, la feuille demandee apparait
si tu recree une nouvelle feuille, cela incrementera la usf
mon pb est que je voudrais que cela foctionne avec les feuilles masquee
en esperant avoir ete clair et que tu pourras m'aider
merci d'avance
ps:tu me parles d'un fichier joint mais, apparremment, il n'est pas passe
a bientot
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
316
Réponses
5
Affichages
703
Réponses
10
Affichages
531
Réponses
5
Affichages
477
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
580
Retour