affichage feuilles masquees

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
 

biomed

XLDnaute Junior
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

  • tests_visu.zip
    12.9 KB · Affichages: 33
D

Dominique

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

biomed

XLDnaute Junior
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
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Je t'ai juste rajouter une ligne juste avant l'activation de ta feuille

Bonne journée

[file name=testsvisu.zip size=13039]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testsvisu.zip[/file]
 

Pièces jointes

  • testsvisu.zip
    12.7 KB · Affichages: 45

Discussions similaires

Réponses
29
Affichages
920
Réponses
5
Affichages
181

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 210
Membres
103 158
dernier inscrit
laufin