Supposons que vous ayez une grande feuille de calcul qui nécessite 16 pages lors de l’impression. Vous vous demandez peut-être s’il existe un moyen, lorsque vous travaillez dans la feuille de calcul, de passer à une page donnée, telle que la page 5.

Les utilisateurs de Word savent qu’ils peuvent, dans Word, utiliser la boîte de dialogue Atteindre pour accéder à différentes pages, mais aucune fonctionnalité de ce type n’existe dans Excel. Il existe cependant plusieurs façons d’aborder le problème.

Une approche consiste à sélectionner la cellule qui apparaît en haut d’une page.

(Par exemple, cette cellule qui apparaît en haut à gauche de la page 5.) Vous pouvez ensuite définir un nom pour la cellule, tel que Page05. Effectuez cette opération pour chaque page de votre feuille de calcul, et vous pouvez ensuite utiliser les fonctionnalités d’Excel pour accéder à ces noms.

Vous pouvez également utiliser le mode d’aperçu des sauts de page. (Pour passer à l’aperçu des sauts de page, choisissez Affichage | Aperçu des sauts de page.) Vous pouvez ensuite voir où se trouvent les sauts de page, sélectionner une cellule de la page souhaitée, puis revenir à l’affichage normal.

Il est également possible de créer une macro qui vous permettra d’accéder à une page spécifique, mais ce n’est pas aussi simple que vous le pensez. La raison a à voir avec l’utilisation possible de sauts de page durs, qui peuvent changer le début et la fin des pages. La macro suivante pourrait cependant faire l’affaire pour vous. Il demande à l’utilisateur un numéro de page, puis sélectionne la cellule en haut à gauche de la page saisie.

Sub GotoPageBreak()

Dim iPages As Integer     Dim wks As Worksheet     Dim iPage As Integer     Dim iVertPgs As Integer     Dim iHorPgs As Integer     Dim iHP As Integer     Dim iVP As Integer     Dim iCol As Integer     Dim lRow As Long     Dim sPrtArea As String     Dim sPrompt As String     Dim sTitle As String

Set wks = ActiveSheet     iPages = ExecuteExcel4Macro("Get.Document(50)")

iVertPgs = wks.VPageBreaks.Count + 1     iHorPgs = wks.HPageBreaks.Count + 1     sPrtArea = wks.PageSetup.PrintArea

sPrompt = "Enter a page number (1 through "

sPrompt = sPrompt & Trim(Str(iPages)) & ") "

sTitle = "Enter Page Number"



iPage = InputBox(Prompt:=sPrompt, Title:=sTitle)



If wks.PageSetup.Order = xlDownThenOver Then         iVP = Int((iPage - 1) / iHorPgs)

iHP = ((iPage - 1) Mod iHorPgs)

Else         iHP = Int((iPage - 1) / iVertPgs)

iVP = ((iPage - 1) Mod iVertPgs)

End If

If iVP = 0 Then         If sPrtArea = "" Then             iCol = 1         Else             iCol = wks.Range(sPrtArea).Cells(1).Column         End If     Else         iCol = wks.VPageBreaks(iVP).Location.Column     End If

If iHP = 0 Then         If sPrtArea = "" Then             lRow = 1         Else             lRow = wks.Range(sPrtArea).Cells(1).Row         End If     Else         lRow = wks.HPageBreaks(iHP).Location.Row     End If

wks.Cells(lRow, iCol).Select     Set wks = Nothing End Sub

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (5823) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.