Leonid ha chiesto se c’era un modo per impostare un colore di sfondo per l’intestazione o il piè di pagina di una pagina. La semplice risposta è che non esiste una tale capacità in Excel. Tuttavia, ci sono un paio di modi per aggirare il problema. Ad esempio, se si utilizza Excel 2002 o Excel 2003, è possibile aggiungere un’immagine a un’intestazione oa un piè di pagina. Con la grafica giusta, puoi far sembrare che l’intestazione e il piè di pagina contengano del colore quando, in effetti, è la grafica che contiene il colore.

Un’altra opzione è creare intestazioni e piè di pagina “falsi”. Se tutto ciò che vuoi fare è avere un’intestazione di colore diverso, puoi usare le prime due righe del foglio di lavoro come intestazione. Queste righe è possibile formattare come desiderato, inclusa l’impostazione del colore delle righe. È quindi possibile istruire Excel a ripetere quelle righe nella parte superiore di ogni pagina della stampa (us la finestra di dialogo Imposta pagina per questo).

La ripetizione di righe per l’area del piè di pagina diventa più problematica, poiché Excel non include una funzionalità che consente di ripetere le righe nella parte inferiore di ogni pagina. È possibile creare una macro per aggiungere righe per intestazione e piè di pagina, ma comporta una modifica al foglio di lavoro: è necessario aggiungere righe per le intestazioni e i piè di pagina falsi.

Ad esempio, considera la seguente macro. Si presume che si desideri bordi di un pollice a sinistra ea destra della stampa e che si desideri stampare solo 46 righe per pagina. Imposta i margini e quindi passa attraverso il foglio di lavoro, aggiungendo le false righe di intestazione e piè di pagina, se necessario. (Poiché la macro regola il design del foglio di lavoro, assicurati di salvare il foglio di lavoro prima di eseguire la macro.)

Sub FakeHeaderFooter()

Dim LHeader As String     Dim CHeader As String     Dim LFooter As String     Dim CFooter As String     Dim CBottom As Integer     Dim CRow As Integer     Dim PageSize As Integer          LHeader = "Top Left"

CHeader = "Top Center"

LFooter = "Bottom Left"

CFooter = "Bottom Center"

PageSize = 46

With ActiveSheet.PageSetup         .PrintTitleRows = ""

.PrintTitleColumns = ""

.PrintArea = ""

.LeftHeader = ""

.CenterHeader = ""

.RightHeader = ""

.LeftFooter = ""

.CenterFooter = ""

.RightFooter = ""

.LeftMargin = Application.InchesToPoints(1)

.RightMargin = Application.InchesToPoints(1)

.TopMargin = Application.InchesToPoints(0)

.BottomMargin = Application.InchesToPoints(0)

.HeaderMargin = Application.InchesToPoints(0)

.FooterMargin = Application.InchesToPoints(0)

.PrintHeadings = False         .Orientation = xlPortrait     End With

CBottom = Range("A16000").End(xlUp).Row

CRow = 1     Do Until CRow > CBottom         If CRow Mod PageSize = 1 Then             Rows(CRow).Select             Selection.Insert Shift:=xlDown             Selection.Insert Shift:=xlDown             CBottom = CBottom + 2

Cells(CRow, 1).Value = LHeader             Cells(CRow, 4).Value = CHeader             Range(Cells(CRow, 1), _               Cells(CRow, 8)).Interior.ColorIndex = 34             Range(Cells(CRow + 1, 1), _               Cells(CRow + 1, 8)).Interior.ColorIndex = xlNone             CRow = CRow + 2         ElseIf CRow Mod PageSize = PageSize - 1 Then             Rows(CRow).Select             Selection.Insert Shift:=xlDown             Selection.Insert Shift:=xlDown             CBottom = CBottom + 2

Cells(CRow + 1, 1).Value = LFooter             Cells(CRow + 1, 4).Value = CFooter             Range(Cells(CRow + 1, 1), _               Cells(CRow + 1, 8)).Interior.ColorIndex = 34             CRow = CRow + 2         Else             CRow = CRow + 1         End If     Loop

LastPageNumber = PageNumber + 1     LastRow = LastPageNumber * PageSize     If CBottom <> LastRow Then             Range(Cells(LastRow, 1), _               Cells(LastRow, 8)).Interior.ColorIndex = 34             Cells(LastRow, 1).Value = LFooter             Cells(LastRow, 4).Value = CFooter     End If

CBottom = Range("A16000").End(xlUp).Row

CRow = 2     Do Until CRow > CBottom         If CRow Mod PageSize = 1 Then             Cells(CRow, 1).PageBreak = xlManual         End If         CRow = CRow + 1     Loop End Sub

Per modificare il numero di righe per pagina, è sufficiente modificare il valore assegnato alla variabile PageSize. È inoltre possibile modificare ciò che viene visualizzato nell’area “intestazione” e “piè di pagina” modificando ciò che è assegnato alle variabili LHeader, CHeader, LFooter e CFooter.

_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 (3056) si applica a Microsoft Excel 97, 2000, 2002 e 2003.