'Voici un code qui vous permettra de connaître comment manipuler les objets XL95. 'Ce code créé une boîte de dialogue xl95 à la volée (elle est temporaire et sera supprimé à la fin de la macro), 'permettant de déplacer sur la feuille de son choix. Seules les feuilles non vides apparaissent. 'Cela fonctionne aussi sur les versions récentes de Excel. 'Il n'a d'intérêt que s'il y a peu de feuilles dans le classeur 'Quelqu'un l'a évoqué dans une conversation intitulée "macro VBA sous Excel 97" le 16 Mai 2001 'sur le groupe de discussion microsoft.public.fr.excel, Sub AccesSection() ' Permet l'affichage d'une boîte de dialogue pour l'accès ' à la section 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 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 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 = "Quelle section souhaitez-vous accéder ? " End With ' Change l'ordre de tabulation des boutons OK et Annuller ' 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 Each cb In PrintDlg.OptionButtons '===>>>> c'est ici que çà flop If cb.Value = xlOn Then Worksheets(cb.Caption).Activate CelluleEnCours = ActiveCell.Address Range("A:S").Select ActiveWindow.Zoom = True Range(CelluleEnCours).Select ActiveWindow.Zoom = 100 Application.ScreenUpdating = True End If Next cb 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