E questo messaggio da dove spunta?
Ah ha... Non escludo che sui forum suggeriti da Nikita possano essere piu' efficaci di noi, ma anche noi ci difendiamo...
Header e Footer in excel sono statici, e non mi è "chiarissimo" tutto quello che hai scritto (ad esempio "vorrei un intestazione che sia dinamica e cambi i valori di alcune celle in base alla pagina in cui si trova, in modo ad esempio per far variare il numero di pagina che ho scritto in una cella").
Comunque ti dò una Userfunction che ti puo' restituire il numero di pagina della cella in cui la Function viene usata:
- Codice: Seleziona tutto
Function GimmiPage(Optional ByRef myRan As Range) As Long
Dim VB As HPageBreak, cHBRow As Long, hPBc As Long, vPBc As Long
Dim cPage As Long, pSh As Worksheet, I As Long, J As Long
'
'Restituisce il numero di pagina del riferimento o della cella con la formula
Application.Volatile
If myRan Is Nothing Then
Set myRan = Application.Caller
End If
Set pSh = myRan.Parent
'
hPBc = pSh.HPageBreaks.Count
vPBc = pSh.VPageBreaks.Count
'
'1:Check H Breaks
For I = 1 To hPBc
If myRan(1, 1).Row < pSh.HPageBreaks(I).Location.Row Then
cPage = I
Exit For
End If
Next I
If cPage = 0 Then
If hPBc = 0 Then
cPage = 1
Else
cPage = I
End If
End If
'2: Check V Breaks
If vPBc >= 0 Then
For I = 1 To vPBc
If myRan.Column < pSh.VPageBreaks(I).Location.Column Then
J = I
Exit For
End If
Next I
If J > 0 Then J = J - 1 Else J = vPBc
cPage = cPage + (hPBc + 1) * J
End If
GimmiPage = cPage
End Function
Va messo in un Modulo standard del progetto vba del file; poi in una cella si potra' usare la formula
- Codice: Seleziona tutto
=GimmiPage()
Questa restituira' il numero della pagina di stampa in cui la cella si trova.
Per il tuo obiettivo usera' una formula appena piu' complessa, del tipo
- Codice: Seleziona tutto
=SCEGLI(GimmiPage();"Prima Pagina";"Seconda pagina";"Terza pagina";"Quarta pagina")
La funzione GimmiPage accetta anche un riferimento; ad esempio
- Codice: Seleziona tutto
=GimmiPage(Foglio1!G52)
Questa restituira' il numero di pagina della cella G52 su Foglio1.
Spero ci sia qualche spunto utile...
keyw:
get cell page number