affichage feuilles masquees

V

vincent

Guest
bonjour a tous,
j'ai recuperé une macro sur le forum pour afficher des feuilles via un uf qui s'incremente automatiquement
cela marche super a un petit detail:
Mes feuilles sont masqees et donc l'uf ne s'incremente pas sauf si je ne les masque pas
y aurait-il possibilite de modifier cette macro afin qu'elle foctionne avec des feuilles masquees
merci d'avance
voici le code:


ub 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
 

Discussions similaires

Réponses
5
Affichages
178
Réponses
2
Affichages
228

Statistiques des forums

Discussions
312 177
Messages
2 085 976
Membres
103 077
dernier inscrit
kamel26asus