paginar hojas y libro

17/11/2003 - 16:36 por Carlos delaVega | Informe spam
Hola a todos.
Tengo un libro con 15 hojas y cuando imprimo el libro completo la paginación
es algo asi:
1/51 2/51 3/51, ... 51/51
quisiera saber si se puede poner tambien y al mismo tiempo una paginación
por hoja y la general del libro
1/3 1/51; 2/3 2/51; 3/3 3/51; 1/2 4/51; 2/2 5/51; etc.,
Saludos
Carlos

Preguntas similare

Leer las respuestas

#6 Carlos delaVega
20/11/2003 - 11:19 | Informe spam
Hola Héctor,
Te agradezco todo el tiempo que estás dedicando a intentar solucionar mi
problema, pero la última modificación no ha modificado el resultado que
sigue siendo el mismo.
1ª hoja: 1/1 - 1/46;
2ª hoja: 1/0 - 2/46;
3ª hoja: 2/0 - 3/46; 3/3 - 4/46; 4/3 - 5/46; 5/3 - 6/46; 6/3 - 7/46;
4ª hoja: 4/2 - 8/46; 5/2 - 9/46; 6/2 - 10/46;
... etc hasta 26 hojas.
Como puedes ver el resultado de la primera parte es 'aleatorio' y no veo que
lo motiva, sin embargo la segunda parte siempre es correcto.

El resultado correcto debería de ser:
1ª hoja: 1/1 - 1/46;
2ª hoja: 1/1 - 2/46;
3ª hoja: 1/5 - 3/46; 2/5 - 4/46; 3/5 - 5/46; 4/5 - 6/46; 5/5 - 7/46;
4ª hoja: 1/3 - 8/46; 2/3 - 9/46; 3/3 - 10/46;
... etc hasta 26 hojas.

En cuanto a la impresión personalizada, siempre imprimo el libro completo
que como puedes ver en el ejemplo de hoy, tiene 46 páginas y 26 hojas.
Por cierto el proceso no tarda mucho, unos 4/5 segundos.
Saludos Carlos


"Héctor Miguel" escribió en el mensaje
news:%
Hola, Carlos !

> ... nuevo codigo sigue sin funcionar ... copio y pego ... no hay ...


error tipografico [...]
> ... primera parte ... parece que esta numerando ... la hoja dentro del


libro no ... pagina de cada hoja.
> ... de las tres primeras ... una página cada una ... debería poner: 1/1;


1/1; 1/1 ... pone: 1/0; 2/0; 3/0 [...]

la 'perdida' [en la 'cuenta' de paginas de cada hoja] 'asoma' cuando se


define una area de impresion 'personalizada'
situacion que 'causa' que los 'extremos' [del area marcada] NO 'alcancen'


su 'salto de pagina' [vertical u horizontal]
que pudiera 'quedar' en cero con el 'consecuente' cero en la


multiplicacion [saltos_verticales * saltos_horizontales] :((

la 'correccion' [para 'cuando sea el caso'] queda como sigue:
__________
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sh As Object, PD As Integer, PA As Integer
For Each Sh In ActiveWindow.SelectedSheets
If Sh.PageSetup.PrintArea <> "" _
Then PD = (Sh.VPageBreaks.Count + 1) * (Sh.HPageBreaks.Count + 1) _
Else PD = Sh.VPageBreaks.Count * Sh.HPageBreaks.Count
Sh.PageSetup.LeftFooter = "&p-" & PA & "/" & PD & " - &p/&n"
PA = PA + PD
Next
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
saludos,
Héctor.


Respuesta Responder a este mensaje
#7 Héctor Miguel
20/11/2003 - 11:56 | Informe spam
Hola, Carlos !

... problema ... ultima modificacion ... resultado ... sigue siendo el mismo.
... el resultado de la primera parte es 'aleatorio' y no veo que lo motiva [...]
... siempre imprimo el libro completo [...]



<\°-°/> me intriga 'eso' del 'aleatorio'... <\°-°/> 'tengo que' decirte lo siguiente...
- ¿te 'animarias' a enviarme [un 'zip' d']el archivo? [con todo y los codigos que estes usando -si el caso-]
=> solo quita de la direccion de correo el 'NO...SPAM...PLS' <= :))

saludos,
Héctor.
Respuesta Responder a este mensaje
#8 Carlos delaVega
20/11/2003 - 13:29 | Informe spam
Gracias Hector.
Te lo envio a tu correo.
Saludos
Carlos

"Héctor Miguel" escribió en el mensaje
news:
Hola, Carlos !

> ... problema ... ultima modificacion ... resultado ... sigue siendo el


mismo.
> ... el resultado de la primera parte es 'aleatorio' y no veo que lo


motiva [...]
> ... siempre imprimo el libro completo [...]

<\°-°/> me intriga 'eso' del 'aleatorio'... <\°-°/> 'tengo que' decirte


lo siguiente...
- ¿te 'animarias' a enviarme [un 'zip' d']el archivo? [con todo y los


codigos que estes usando -si el caso-]
=> solo quita de la direccion de correo el 'NO...SPAM...PLS' <= :))

saludos,
Héctor.


Respuesta Responder a este mensaje
#9 Héctor Miguel
23/11/2003 - 02:17 | Informe spam
Hola, Carlos !

retomando el tema y considerando el 'extraño' caso de: <\°-°/> me intriga 'eso de aleatorio'... <\°-°/>
te confirmo que [efectivamente] se trata de 'personalizaciones aleatorias' [en el 'pagesetup' de cada hoja] :((
al final del mensaje van dos procedimientos 'ejemplo' [ambos en el evento _BeforePrint del libro]

el primero: 'recorre' las hojas seleccionadas [pero]... 'se detiene' en cada una 'buscando' los saltos de pagina
FALLA [al 'detectar' personalizacion a los titulos fijos en las hojas PrintTitleRows o PrintTitleColumns]
-o- cuando SOLO una hoja tiene 'personalizados' los titulos 'fijos' PERO NO ES LA PRIMERA
-o- cuando mas de una hoja tiene 'personalizados' los titulos 'fijos'
inclusive => 'de-selecciona la seleccion' <= [no le encuentro 'explicacion' <\°-°/>] :((

el segundo 'recorre' DOS VECES las hojas seleccionadas [pero]... 'rapidamente obtiene' las paginas 'a imprimirse'

=> NOTA IMPORTANTE <si usas 'primero' la vista preliminar [printpreview] y 'desde ahi' TAMBIEN imprimes
el evento _BeforePrint 'se dispara' DOS VECES [por lo tanto, tambien el codigo]

saludos,
Héctor. [siguen los ejemplos]
_____ 1 _____
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sht As Worksheet, A_Imp As String, PD As Integer, PA As Integer, _
SH As Integer, Fn As Long, SV As Integer, Cn As Long
For Each Sht In ActiveWindow.SelectedSheets
If Sht.UsedRange.Count = 1 And IsEmpty(Sht.Range("a1")) Then GoTo nHoja
SH = Sht.HPageBreaks.Count + 1
SV = Sht.VPageBreaks.Count + 1
If Sht.PageSetup.PrintArea <> "" _
Then A_Imp = Sht.PageSetup.PrintArea Else A_Imp = Sht.UsedRange.Address
Cn = Sht.Range(A_Imp).Column + Sht.Range(A_Imp).Columns.Count - 1
Fn = Sht.Range(A_Imp).Row + Sht.Range(A_Imp).Rows.Count - 1
On Error GoTo hOK
If Sht.HPageBreaks.Count > 0 Then
If Sht.HPageBreaks(Sht.HPageBreaks.Count).Location.Row > Fn Then SH = SH - 1
hOK:
End If
On Error GoTo vOK
If Sht.VPageBreaks.Count > 0 Then
If Sht.VPageBreaks(Sht.VPageBreaks.Count).Location.Column > Cn Then SV = SV - 1
vOK:
End If
PD = SH * SV
Sht.PageSetup.LeftFooter = "&p-" & PA & "/" & PD & " - &p/&n"
PA = PA + PD
nHoja:
Next
End Sub
_____ 2 _____
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.ScreenUpdating = False
Dim Sel_Shts As Sheets, Sht As Object, Pgs() As Integer, PD As Integer, PA As Integer
Set Sel_Shts = ActiveWindow.SelectedSheets
ReDim Pgs(Sel_Shts.Count)
For Each Sht In Sel_Shts
Sht.Select
PD = PD + 1
Pgs(PD) = ExecuteExcel4Macro("Get.Document(50)")
Next
PD = 1
For Each Sht In Sel_Shts
Sht.Select
Sht.PageSetup.LeftFooter = "&p-" & PA & "/" & Pgs(PD) & " - &p/&n"
PA = PA + Pgs(PD)
PD = PD + 1
Next
Sel_Shts.Select
Set Sel_Shts = Nothing
Application.ScreenUpdating = True
End Sub
Respuesta Responder a este mensaje
#10 Carlos delaVega
24/11/2003 - 17:19 | Informe spam
GRACIAS, Héctor Miguel por todo el trabajo que te has tomado con este
asunto.
Saludos
Carlos
"Héctor Miguel" escribió en el mensaje
news:%238FBS$
Hola, Carlos !

retomando el tema y considerando el 'extraño' caso de: <\°-°/> me intriga


'eso de aleatorio'... <\°-°/>
te confirmo que [efectivamente] se trata de 'personalizaciones aleatorias'


[en el 'pagesetup' de cada hoja] :((
al final del mensaje van dos procedimientos 'ejemplo' [ambos en el evento


_BeforePrint del libro]

el primero: 'recorre' las hojas seleccionadas [pero]... 'se detiene' en


cada una 'buscando' los saltos de pagina
FALLA [al 'detectar' personalizacion a los titulos fijos en las hojas


PrintTitleRows o PrintTitleColumns]
-o- cuando SOLO una hoja tiene 'personalizados' los titulos 'fijos' PERO


NO ES LA PRIMERA
-o- cuando mas de una hoja tiene 'personalizados' los titulos 'fijos'
inclusive => 'de-selecciona la seleccion' <= [no le encuentro


'explicacion' <\°-°/>] :((

el segundo 'recorre' DOS VECES las hojas seleccionadas [pero]...


'rapidamente obtiene' las paginas 'a imprimirse'

=> NOTA IMPORTANTE <> si usas 'primero' la vista preliminar [printpreview] y 'desde ahi' TAMBIEN


imprimes
el evento _BeforePrint 'se dispara' DOS VECES [por lo tanto, tambien el


codigo]

saludos,
Héctor. [siguen los ejemplos]
_____ 1 _____
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sht As Worksheet, A_Imp As String, PD As Integer, PA As Integer, _
SH As Integer, Fn As Long, SV As Integer, Cn As Long
For Each Sht In ActiveWindow.SelectedSheets
If Sht.UsedRange.Count = 1 And IsEmpty(Sht.Range("a1")) Then GoTo


nHoja
SH = Sht.HPageBreaks.Count + 1
SV = Sht.VPageBreaks.Count + 1
If Sht.PageSetup.PrintArea <> "" _
Then A_Imp = Sht.PageSetup.PrintArea Else A_Imp Sht.UsedRange.Address
Cn = Sht.Range(A_Imp).Column + Sht.Range(A_Imp).Columns.Count - 1
Fn = Sht.Range(A_Imp).Row + Sht.Range(A_Imp).Rows.Count - 1
On Error GoTo hOK
If Sht.HPageBreaks.Count > 0 Then
If Sht.HPageBreaks(Sht.HPageBreaks.Count).Location.Row > Fn Then SH


= SH - 1
hOK:
End If
On Error GoTo vOK
If Sht.VPageBreaks.Count > 0 Then
If Sht.VPageBreaks(Sht.VPageBreaks.Count).Location.Column > Cn Then


SV = SV - 1
vOK:
End If
PD = SH * SV
Sht.PageSetup.LeftFooter = "&p-" & PA & "/" & PD & " - &p/&n"
PA = PA + PD
nHoja:
Next
End Sub
_____ 2 _____
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.ScreenUpdating = False
Dim Sel_Shts As Sheets, Sht As Object, Pgs() As Integer, PD As Integer,


PA As Integer
Set Sel_Shts = ActiveWindow.SelectedSheets
ReDim Pgs(Sel_Shts.Count)
For Each Sht In Sel_Shts
Sht.Select
PD = PD + 1
Pgs(PD) = ExecuteExcel4Macro("Get.Document(50)")
Next
PD = 1
For Each Sht In Sel_Shts
Sht.Select
Sht.PageSetup.LeftFooter = "&p-" & PA & "/" & Pgs(PD) & " - &p/&n"
PA = PA + Pgs(PD)
PD = PD + 1
Next
Sel_Shts.Select
Set Sel_Shts = Nothing
Application.ScreenUpdating = True
End Sub


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida