............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Repetir filas en extremo inferior de cada pagina

Ver el tema anterior Ver el tema siguiente Ir abajo

Repetir filas en extremo inferior de cada pagina

Mensaje por lalico el Dom Ene 10, 2010 6:44 am

Hola a todos. Como siempre enhorabuena por este foro y dar las gracias a los que ayudais con gente como yo que tienen dudas y recurren al foro para intentar solucionarlas. Os cuento.
Tengo una hoja que es una factura, la cual puede tener varias paginas. Cada pagina no tiene el mismo numero de filas ya que cada fila tiene una anchura diferente segun la descripcion del texto a facturar. Quisiera colocar al final de cada pagina (antes de cada salto de pagina) dos filas en las que me sumara el subtotal de cada pagina y asi poder imprimirla. Asi como en la configuracion de la pagina se puede hacer repetir filas en extremos superior, no se como hacerlo para extremo inferior. Adjunto el archivo. En la hoja piepagina seria lo que yo quiero que aparezca al final de cada hoja (lo colocariamos en la ultima fila de cada pagina, en la columna b). No se como agregar eso despues de cada salto de pagina. He cerado form de impresion pero no consigo dar con el codigo deseado.

se me olvido el enlace del archivo.
[Tienes que estar registrado y conectado para ver este vínculo]
Un saludo y gracias

Muchas gracias de antemano. Saludos desde Navarra

lalico

Masculino Cantidad de envíos : 6
Edad : 41
Ciudad - Pais : pamplona-españa
Version de Excel : excel 2007
Fecha de inscripción : 09/01/2010

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por GalileoGali el Dom Ene 10, 2010 9:33 am

Con MEGAUPLOAD estoy teniendo dificultades, por qué, mejor, no pruebas con skydrive??

A propósito: no será que esos subtotales irian "antes de cada salto de pagina y no después?


Última edición por GalileoGali el Dom Ene 10, 2010 9:47 am, editado 1 vez

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

repetir filas extremo inferior

Mensaje por lalico el Dom Ene 10, 2010 9:42 am

GalileoGali escribió:Con MEGAUPLOAD estoy teniendo dificultades, por qué, mejor, no pruebas con skydrive??


Ok ahi va el enlace
[Tienes que estar registrado y conectado para ver este vínculo]

Gracias y un saludo

lalico

Masculino Cantidad de envíos : 6
Edad : 41
Ciudad - Pais : pamplona-españa
Version de Excel : excel 2007
Fecha de inscripción : 09/01/2010

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por GalileoGali el Dom Ene 10, 2010 1:04 pm

si fijas los saltos de pagina para despues ver donde pones las filas del pie de pagina, esto inevitablemente va a redefinir la posicion de los saltos de pagina automaticos, porque con cada insercion desplazas hacia abajo. Yo me manejaria con Saltos creados, puestos despues de Insertar. Y para fijar la posicion de las inserciones, ver cuantas filas + Pie sona admisibles en el Tamaño de Hoja de papel que vas a usar
En el procedimiento de Insertar LAS FILAS del pseudo pie de pagina, inmediatamente insertar el PageBreak, pero segun entiendo esto debe ser un acto posterior

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por P@li el Lun Ene 11, 2010 9:49 am

No es lo más elegante que se haya visto en programación, pero una posible solución sería la siguiente:

Sub Macro1()
Sheets("copia factura").PageSetup.LeftFooter = "&""Courier New,Normal""" & _
"Base Iva Retencion Total factura " & Chr(10) & _
"21% $ 14.20 $ 152.00 $ 153.114,00 "
Sheets("copia factura").PageSetup.CenterFooter = ""
Sheets("copia factura").PageSetup.RightFooter = ""
Sheets("copia factura").PageSetup.BottomMargin = Application.InchesToPoints(0.393700787401575)
Sheets("copia factura").PageSetup.FooterMargin = Application.InchesToPoints(0.196850393700787)
End Sub

Saludos.
Pablo

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por lalico el Lun Ene 11, 2010 5:41 pm

P@li escribió:No es lo más elegante que se haya visto en programación, pero una posible solución sería la siguiente:

Sub Macro1()
Sheets("copia factura").PageSetup.LeftFooter = "&""Courier New,Normal""" & _
"Base Iva Retencion Total factura " & Chr(10) & _
"21% $ 14.20 $ 152.00 $ 153.114,00 "
Sheets("copia factura").PageSetup.CenterFooter = ""
Sheets("copia factura").PageSetup.RightFooter = ""
Sheets("copia factura").PageSetup.BottomMargin = Application.InchesToPoints(0.393700787401575)
Sheets("copia factura").PageSetup.FooterMargin = Application.InchesToPoints(0.196850393700787)
End Sub

Saludos.
Pablo

Muchas gracias por la respuesta, pero necesito algo mas. ¿como se podria poner que para cada pagina sumase el contenido de las filas superiores, es decir imaginemos que la pagina uno va de la fila 20 a 24 , para esa pagina la base seria la suma de los valores de la columna b para esas filas, la pagina 2 de la 25 a la 30 y para esa pagina sumase los valores de la columna b para esas filas y asi sucesivamente? ¿se podria hacer que el pie de pagina tuviese bordes? No lo se, a lo mejor es demasiado lo que pido y excel no lo admite. Para que me entiendas lo que yo quiero es una factura con varias paginas y al final de cada pagina me vaya sumando el subtotal de cada una de ellas. Utilizo excel 2007. De todas maneras gracias por tu atencion. Un saludo desde Navarra

lalico

Masculino Cantidad de envíos : 6
Edad : 41
Ciudad - Pais : pamplona-españa
Version de Excel : excel 2007
Fecha de inscripción : 09/01/2010

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por P@li el Lun Ene 11, 2010 8:56 pm

Yo me fijo como ayudarte, pero te pido que me digas si conocés alguna persona de apellido CELAYA allá en Navarra.

Saludos.

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por P@li el Lun Ene 11, 2010 9:57 pm

Hay mucho por depurar de este código, pero hace bastante de lo que se necesita.

Código:

Sub prueba()
    Dim ws As Worksheet
    Dim iva As Double
    Dim base As Double
    Dim retencion As Double
    Dim total As Double
    Dim fila_inicio As Long
    Dim fila_fin As Long
    Dim columna_inicio As Long
    Dim columna_fin As Long
    Dim fila As Long
    Dim fila2 As Long
    Dim columna As Long
    Dim columna2 As Long
   
    fila_inicio = 18
    fila_fin = 36
    columna_inicio = 2
    columna_fin = 8
   
    base = 21
   
    Set ws = Sheets("copia factura")
   
    Application.ScreenUpdating = False
    ws.PageSetup.CenterFooter = ""
    ws.PageSetup.RightFooter = ""
    ws.PageSetup.BottomMargin = Application.InchesToPoints(0.393700787401575)
    ws.PageSetup.FooterMargin = Application.InchesToPoints(0.196850393700787)

    For fila = fila_inicio To fila_fin
        fila2 = fila
        Do
            ws.PageSetup.PrintArea = ws.Range(ws.Cells(fila, columna_inicio), ws.Cells(fila2, columna_fin)).Address
           
            If ws.HPageBreaks.Count > 0 Then
                Exit Do
            End If
           
            total = total + ws.Cells(fila2, 8)
            fila2 = fila2 + 1
           
            If fila2 > fila_fin Then Exit Do
        Loop
        iva = total * (base / 100)
        retencion = total * 0.06
       
        ws.PageSetup.LeftFooter = "&""Courier New,Bold""" & _
            "Base                        Iva                          Retencion                        Total factura " & Chr(10) & _
            Format(base, "0") & "%                        " & Format(iva, "$0.00") & "                      " & Format(retencion, "$0.00") & "                          " & Format(total, "$0.00")
   
        ws.PageSetup.PrintArea = ws.Range(ws.Cells(fila, columna_inicio), ws.Cells(fila2 - 1, columna_fin)).Address
        ws.PrintOut
       
        'total = 0 '<--esto reiniciaria el total a 0 para cada página (si fuera necesario)
       
        fila = fila2 - 1
    Next
    Application.ScreenUpdating = True
   
    Set ws = Nothing
End Sub

Saludos
Pablo

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por lalico el Mar Ene 12, 2010 4:06 pm

P@li escribió:Hay mucho por depurar de este código, pero hace bastante de lo que se necesita.

Código:

Sub prueba()
    Dim ws As Worksheet
    Dim iva As Double
    Dim base As Double
    Dim retencion As Double
    Dim total As Double
    Dim fila_inicio As Long
    Dim fila_fin As Long
    Dim columna_inicio As Long
    Dim columna_fin As Long
    Dim fila As Long
    Dim fila2 As Long
    Dim columna As Long
    Dim columna2 As Long
   
    fila_inicio = 18
    fila_fin = 36
    columna_inicio = 2
    columna_fin = 8
   
    base = 21
   
    Set ws = Sheets("copia factura")
   
    Application.ScreenUpdating = False
    ws.PageSetup.CenterFooter = ""
    ws.PageSetup.RightFooter = ""
    ws.PageSetup.BottomMargin = Application.InchesToPoints(0.393700787401575)
    ws.PageSetup.FooterMargin = Application.InchesToPoints(0.196850393700787)

    For fila = fila_inicio To fila_fin
        fila2 = fila
        Do
            ws.PageSetup.PrintArea = ws.Range(ws.Cells(fila, columna_inicio), ws.Cells(fila2, columna_fin)).Address
           
            If ws.HPageBreaks.Count > 0 Then
                Exit Do
            End If
           
            total = total + ws.Cells(fila2, 8)
            fila2 = fila2 + 1
           
            If fila2 > fila_fin Then Exit Do
        Loop
        iva = total * (base / 100)
        retencion = total * 0.06
       
        ws.PageSetup.LeftFooter = "&""Courier New,Bold""" & _
            "Base                        Iva                          Retencion                        Total factura " & Chr(10) & _
            Format(base, "0") & "%                        " & Format(iva, "$0.00") & "                      " & Format(retencion, "$0.00") & "                          " & Format(total, "$0.00")
   
        ws.PageSetup.PrintArea = ws.Range(ws.Cells(fila, columna_inicio), ws.Cells(fila2 - 1, columna_fin)).Address
        ws.PrintOut
       
        'total = 0 '<--esto reiniciaria el total a 0 para cada página (si fuera necesario)
       
        fila = fila2 - 1
    Next
    Application.ScreenUpdating = True
   
    Set ws = Nothing
End Sub

Saludos
Pablo

Hola Pablo. Muchas gracias por tu ayuda. Antes de comentar el codigo decirte, que asi que recuerde no conozco a nadie que se apellide Celaya (no es un apeliido muy comun de la zona donde vivo, Estella).Creo que es un apellido mas comun de la zona norte, limite con la provincia de Guipuzcoa (zona de Baztan). No obstante, si recuerdo de alguien que tenga ese apellido te lo haré saber.

Con respecto al codigo (no quiero abusar de tu confianza), pero si se te ocurriese algo seria estupendo.
1- Solamente me imprime la primera hoja (no todas). Probare con otra impesora, ya que en casa no tengo impresora me imprime a adobe pdf ¿puede ser eso?. Probé en el printout a ponerl from:=1, to:=3 pero no me funciona, solamente imprime la primera pagina
2- ¿Seria posible poner el pie de pagina "imitando" a una tabla?, es decir que el "pseudopie tuviese" bordes delimitando los textos y cantidades que aparecen en el mismo
3- Para redondear el asunto, en el caso de que yo lo que desease fuera guardar a pdf que me guardara el archivo con el nombre de la hoja en el directorio que yo le dijera.(ocurre a veces que la factura que yo hago la imprima directamente a pdf y asi enviarla por email).
4- Con respecto al problemilla que si ponia en el form original el que me hiciese una vista preliminar no sé porque motivo se bloquea excel y no me deja siquiera ni cerrar el formulario. ¿Se te ocurre alguna orientacion al respecto?

Muchas gracias. Tu codigo funciona. Intentare probarlo con mas detenimiento. Como diria un argentino (creo que dirias asi) sos estupendo!!!!!!!!!!!

Un saludo y gracias

lalico

Masculino Cantidad de envíos : 6
Edad : 41
Ciudad - Pais : pamplona-españa
Version de Excel : excel 2007
Fecha de inscripción : 09/01/2010

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por P@li el Mar Ene 12, 2010 8:59 pm

Que tal,
Gracias por el dato sobre el apellido, la familia de mi madre vive en Navarra, no se bien en que ciudad, en algún momento le pregunto y te digo.

1.- Solamente te imprime una página porque la macro imprimi las páginas por separado, envía a la cola de impresión tantas impresiones como páginas sean, por lo que seguramente, cada página reemplaza el pdf anterior y solamente te quedarías con el último, o al contrario, imprime el primero y automáticamente se abre, las demás impresiones no pueden guardarse porque no pueden sobreescribir el primer archivo por problemas de permisos y demás.

2.- Se podría hacer un pie de página con la misma tabla, insertando filas, voy a verlo ahora y te comento.

las 3 y 4 te las debo para otro momento en que tenga más paciencia.

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por lalico el Miér Ene 13, 2010 3:50 pm

P@li escribió:Que tal,
Gracias por el dato sobre el apellido, la familia de mi madre vive en Navarra, no se bien en que ciudad, en algún momento le pregunto y te digo.

1.- Solamente te imprime una página porque la macro imprimi las páginas por separado, envía a la cola de impresión tantas impresiones como páginas sean, por lo que seguramente, cada página reemplaza el pdf anterior y solamente te quedarías con el último, o al contrario, imprime el primero y automáticamente se abre, las demás impresiones no pueden guardarse porque no pueden sobreescribir el primer archivo por problemas de permisos y demás.

2.- Se podría hacer un pie de página con la misma tabla, insertando filas, voy a verlo ahora y te comento.

las 3 y 4 te las debo para otro momento en que tenga más paciencia.

Buenas tardes. Sobre el tema del apellido lo he comentado hoy y resulta que si que el apellido Celaya es comun de la zona donde vivo (yo no conocia a nadie con ese apellido). La zona donde vivo es Tierra Estella.

Gracias por tu ayuda en cuanto al codigo. ¿Entonces el asunto de que se imprimieran todas las paginas como se podria solucionar? me interesa bastante que fuese asi porque algunas de mis facturas tienen muchas paginas. Lo que hace al imprimir es exacctamante lo que describes "imprime el primero y automáticamente se abre, las demás impresiones no pueden guardarse porque no pueden sobreescribir el primer archivo"

Un saludo y muchas gracias.

lalico

Masculino Cantidad de envíos : 6
Edad : 41
Ciudad - Pais : pamplona-españa
Version de Excel : excel 2007
Fecha de inscripción : 09/01/2010

Volver arriba Ir abajo

Re: Repetir filas en extremo inferior de cada pagina

Mensaje por Contenido patrocinado Hoy a las 11:25 pm


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.