Pie de pagina

06/05/2005 - 01:03 por Adolfo Guzman | Informe spam
Hola, tengo una hoja de calculo en la que agregue subtotales y saltos de
pagina, solo que quisiera que en el pie de pagina pudiera escribir el valor
de la celda que aparece despues de cada salto de pagina, asi cada pagina
llevaria pie de pagina distinto, espero puedan ayudarme y muchas gracias
 

Leer las respuestas

#1 Héctor Miguel
07/05/2005 - 13:46 | Informe spam
hola, Adolfo !

... el salto de paginas... lo asigna automaticamente... la herramienta de subtotales
... 22 paginas en horizontal... en una impresora lexmark e322... pagina... ajustada al 65%
... se repiten las filas de la 1 a la 8... la orientacion... es la que trae por default
... el archivo siempre se imprime en la misma impresora, espero que con esa informacion [...]



te falto 'algo' de informacion :-( [asi que...] 'puse' al codigo a 'buscarla' o... 'asumirla' ;)
estoy suponiendo que 'la celda' que necesitas 'pasar' como pie de pagina por cada 'subtotal'...
-> es la columna 2 correspondiente a cada fila con 'salto de pagina'
[seguramente] le hara falta algun 'ajustillo' [por 'mis' supuestos] :-(

vamos probando y... si cualquier duda [o 'sale' informacion adicional]... comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub ImprimirPorSubTotales()
Application.ScreenUpdating = False
Dim sV, Rangos() As String, uCelda As String, _
F1 As Byte, Fx As Byte, C1 As Byte, Cx As Byte
' obtenemos en que lineas caen los saltos verticales... '
Names.Add Name:="sV", RefersToR1C1:="=Get.Document(64)"
sV = Evaluate("index(sV,column(a:iv),0)")
Names("sV").Delete
' trabajamos sobre la hoja 'activa' '
With ActiveSheet.PageSetup
' obtenemos la fila1, la columna1 y la última columna del rango 'imprimible' '
F1 = Range(.PrintTitleRows).Rows.Count + 1
If .PrintArea = "" _
Then uCelda = .Parent.UsedRange.Address _
Else uCelda = .PrintArea
C1 = Range(Left(uCelda, InStr(uCelda, ":") - 1)).Column
Cx = Range(Mid(uCelda, InStr(uCelda, ":") + 1)).Column
' preparamos una matriz para 'almacenar' cada rango por subtotales '
ReDim Rangos(UBound(sV))
' obtenemos el rango de la primera pagina '
Rangos(1) = Range(Cells(F1, C1), Cells(sV(LBound(sV)) - 1, Cx)).Address
' y los siguientes, segun las lineas donde hay salto de página '
For Fx = LBound(sV) To UBound(sV) - 1
Rangos(Fx + 1) = Range(Cells(sV(Fx), C1), Cells(sV(Fx + 1) - 1, Cx)).Address
Next
' usamos la matriz para establecer cada rango de impresión '
For Fx = LBound(sV) To UBound(sV)
' establecemos un pié de página para cada subtotal _
si NO quieres la columna 2 de cada 'salto de página'... _
cambia el '2' por la columna correspondiente al final de... '
.LeftFooter = "Página para... " & Range(Rangos(Fx)).Cells(1, 2)
' establecemos cada rango o área de impresión '
.PrintArea = Rangos(Fx)
' y mandamos la imprecion por cada rango de subtotales '
.Parent.PrintOut Copies:=1
Next
End With
End Sub

Preguntas similares