Supponiamo di avere un foglio di lavoro di grandi dimensioni che richiede 16 pagine quando viene stampato. Potresti chiederti se c’è un modo, quando lavori all’interno del foglio di lavoro, per saltare a una determinata pagina, come la pagina 5.

Gli utenti di Word sanno che possono, in Word, utilizzare la finestra di dialogo Vai a per passare a varie pagine, ma in Excel non esiste alcuna funzionalità di questo tipo. Tuttavia, ci sono un paio di modi per affrontare il problema.

Un approccio consiste nel selezionare la cella che appare nella parte superiore di una pagina.

(Ad esempio, quella cella che appare in alto a sinistra della pagina 5.) È quindi possibile definire un nome per la cella, come Pagina05. Fallo per ogni pagina del foglio di lavoro e puoi quindi utilizzare le funzionalità di Excel per passare a quei nomi.

Un altro modo per farlo è utilizzare la modalità di anteprima delle interruzioni di pagina. (Per passare all’anteprima delle interruzioni di pagina, scegliere Visualizza | Anteprima interruzioni di pagina.) È quindi possibile vedere dove si trovano le interruzioni di pagina, selezionare una cella nella pagina desiderata e quindi tornare alla visualizzazione normale.

È anche possibile creare una macro che ti permetta di passare a una pagina specifica, ma non è così facile come potresti pensare. Il motivo ha a che fare con il possibile utilizzo di interruzioni di pagina rigide, che possono cambiare il punto di inizio e di fine delle pagine. La seguente macro potrebbe fare il trucco per te, tuttavia. Richiede all’utente un numero di pagina e quindi seleziona la cella in alto a sinistra nella pagina inserita.

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

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (5823) si applica a Microsoft Excel 97, 2000, 2002 e 2003.