Saltar al contenido

Insertar cabecera en cada rango a imprimir


Recommended Posts

Hola a todos si alguien me puede ayudar con el siguiente caso:

Tengo una hoja llamada "enero" que contiene como 8,000 registros la cual tengo que imprimir, pero como ejemplo adjunto solo una parte, bueno el caso es que antes de inprimir necesito que al inicio de cada hoja aparesca la misma cabecera, tal como se muestra en la hoja "ener_imp",

y que tambien si es posible que aparesca las palabras van y vienen al final e inicio de cada hoja tal como se muestra en las letras de color rojo con su respectiva sumatoria asi como se encuentra.

cabe mencionar que en cada hoja entraran 104 filas incluido la cabecera y las letras de color rojo.

Gracias..

prueba_lib.xlsm

Enlace a comentario
Compartir con otras webs

Hace 6 horas, Manuel TR dijo:

... 8,000 registros... tengo que imprimir, pero...antes... necesito que al inicio de cada hoja aparesca la misma cabecera, tal como se muestra en la hoja "ener_imp" y que tambien... aparesca las palabras van y vienen al final e inicio de cada hoja... con su respectiva sumatoria... en cada hoja entraran 104 filas incluido la cabecera y las letras de color rojo...

1) tu requerimiento (parece que) NO ES "tan sencillo como lo pintas", se trata de varios "grupos" con un (in)cierto número de registros que se identifican al final por 4 conceptos en la columna "E":
- saldo anterior > movimiento del mes > saldo actual > salto total

2) a cada "corte" (de 104 filas) se agregan:
- 2 filas con el "van"
- 6 filas con las cabeceras
- 3 filas para el "vienen"

3) estas inserciones NO SIEMPRE van a ocurrir en el lugar "más apropiado" para NO afectar las fórmulas de los registros del punto 1 anterior (resulta obvio, no ?)

4) por lo mismo, sería conveniente que incluyas en tu ejemplo (al menos) 5 "cortes de página" donde se incluyan (al menos) 2 situaciones como las descritas
- (esto para "ver" cómo exactamente estás resolviendo algún "corte incómodo" por las razones expuestas ?)

saludos,
hector.

Enlace a comentario
Compartir con otras webs

Hace 7 horas, Héctor Miguel dijo:

1) tu requerimiento (parece que) NO ES "tan sencillo como lo pintas", se trata de varios "grupos" con un (in)cierto número de registros que se identifican al final por 4 conceptos en la columna "E":
- saldo anterior > movimiento del mes > saldo actual > salto total

2) a cada "corte" (de 104 filas) se agregan:
- 2 filas con el "van"
- 6 filas con las cabeceras
- 3 filas para el "vienen"

3) estas inserciones NO SIEMPRE van a ocurrir en el lugar "más apropiado" para NO afectar las fórmulas de los registros del punto 1 anterior (resulta obvio, no ?)

4) por lo mismo, sería conveniente que incluyas en tu ejemplo (al menos) 5 "cortes de página" donde se incluyan (al menos) 2 situaciones como las descritas
- (esto para "ver" cómo exactamente estás resolviendo algún "corte incómodo" por las razones expuestas ?)

saludos,
hector.

Hola Héctor, gracias por responder, buena observación de tu parte, tomando en cuenta tu sugerencia adjunto archivo con 5 "cortes de página".

Gracias

prueba_lib22.xlsm

Enlace a comentario
Compartir con otras webs

En 22/12/2018 at 8:32 , Manuel TR dijo:

adjunto archivo con 5 "cortes de página"

con los datos de tu segundo adjunto, el código probado (me) ha devuelto un arreglo igual a la muestra que esperas obtener, incluyendo ajustes en algunas fórmulas intermedias

- descarga el adjunto (*.zip), lo descomprimes, y obtienes un *.bas
- ese *.bas lo IMPORTAS a tu archivo de excel desde el editor de VBA (archivo > importar archivo...)
- analiza los códigos, regresa a la interfaz de hoja de cálculo y ejecuta la macro

sobra recomendar que hagas pruebas sobre una copia de tus datos reales (por si las dudas ?)

prueba primero con el modelo de tu segundo adjunto y después con la hoja de las 8000 filas, ya que es muy probable que (en la realidad) se presenten casos que no pudieron ser analizados en tan corto ejemplo (espero que los menos ?), ya comentarás...

saludos,
hector.

ajustaCortes.zip

Enlace a comentario
Compartir con otras webs

Hace 31 minutos , Héctor Miguel dijo:

con los datos de tu segundo adjunto, el código probado (me) ha devuelto un arreglo igual a la muestra que esperas obtener, incluyendo ajustes en algunas fórmulas intermedias

- descarga el adjunto (*.zip), lo descomprimes, y obtienes un *.bas
- ese *.bas lo IMPORTAS a tu archivo de excel desde el editor de VBA (archivo > importar archivo...)
- analiza los códigos, regresa a la interfaz de hoja de cálculo y ejecuta la macro

sobra recomendar que hagas pruebas sobre una copia de tus datos reales (por si las dudas ?)

prueba primero con el modelo de tu segundo adjunto y después con la hoja de las 8000 filas, ya que es muy probable que (en la realidad) se presenten casos que no pudieron ser analizados en tan corto ejemplo (espero que los menos ?), ya comentarás...

saludos,
hector.

ajustaCortes.zip

Hola Hector gracias por responder, al correr la macro en mi archivo con mas registros me salta un error en la siguiente linea:

r = Split(Range("a" & Join(Evaluate("transpose(row(1:" & g & ")*93+114)"), ",a")).Address, ",")

y me sale un aviso: se ha producido el error 1004 en tiempo de ejecución

no se encontro el elemento con el nombre especificado.

Quiero subir mi archivo pero no me deja ya que pesa 300kb y solo permite 102 kb

Gracias

 

Enlace a comentario
Compartir con otras webs

Hace 3 horas, Manuel TR dijo:

... subir mi archivo... no me deja... 300kb y solo permite 102 kb

si confirmas que con la muestra pequeña si funciona pero no con la lista grande (?)

sube una muestra (real) en algún sitio de hospedaje gratuito (onedrive, googledrive, etc.) y publica el vínculo para su descarga en tu próximo mensaje

saludos,
hector.

Enlace a comentario
Compartir con otras webs

Hola Héctor, Con la muestra pequeña si funciona, pero con la lista grande ya no, envío archivo de trabajo el cual contiene información de 2 años (2012 y 2013) separado cada mes por hoja de

enero 2012 y febrero 2012 ya estan terminados (es una muestra como deberia quedar)

marzo a noviembre 2012 ya tienen la cabecera solo falta el van y vienen con sus respectiva sumatoria

dic 2012 a dic 2013 falta insertar la cabecera y el van y el vienen con sus respectivas sumatorias

si resulta muy complicado todo ello, me seria de mucha ayuda y me basta con que se inserte el van y vienen con su respectivo calculo

el resto lo puedo hacer manualmente.

Adjunto archivo:

https://drive.google.com/file/d/1Li2j7tL650DWAyhAf_hv2jl-CwLjg2x0/view?usp=sharing

Muchas gracias

Enlace a comentario
Compartir con otras webs

Hace 16 horas, Manuel TR dijo:

enero 2012 y febrero 2012 ya estan terminados (es una muestra como deberia quedar)

marzo a noviembre 2012 ya tienen la cabecera solo falta el van y vienen con sus respectiva sumatoria

dic 2012 a dic 2013 falta insertar la cabecera y el van y el vienen con sus respectivas sumatorias

sigue el mismo procedimiento indicado en el mensaje del adjunto anterior (.zip > .bas > etc.)

el (nuevo) código lleva comentada cada línea que deja de operar e inmediato después la línea que si funciona (por si quieres analizar los cambios)

comentarios:
- estos procedimientos están diseñados para "comenzar desde cero" (los reportes SIN inserciones "a medias" de cabeceras)
- hacer adaptaciones para determinar hasta donde has hecho inserciones en avanzada sería más laborioso que ingenioso, por lo tanto...
- los meses que tienes "medio" avanzados (mar-nov 2012 y parcial dic 2012) tendrías que "regresarlos a su estado original" :(

saludos,
hector.

ajustaCortesV2.zip

agrego: (dicho sea "de paso")...

tu adjunto se redujo de 10MB a 6MB por virtud de filas y columnas que no contenían datos (probablemente formatos y/o contenidos borrados ?)

Enlace a comentario
Compartir con otras webs

Hola Héctor, lo acabo de revisar y esta muy bueno solo una observación al respecto, veo un caso donde no suma el saldo que arrastra, lo he sombreado de amarillo ya que varios que tienen ese inconveniente, en los demás casos no he encontré ningún problema.

https://drive.google.com/file/d/1Y6AuO21kQbV9O0dOQ2WVTBTzLcqQ39sO/view?usp=sharing

Si no fuera mucha molestia, por otra parte tu macro lo he modificado los rangos para adaptarlo a otro archivo que contiene un poco mas de columnas, pero tengo un problema en la sumatoria, este archivo es menos complejo ya que siempre suma los saldos finales de cada quiebre de hoja a la siguiente hoja y así sucesivamente. (el archivo contienen una hoja llamada "diario enero" y la hoja llamada "debe quedar así" que es como se desea.

https://drive.google.com/file/d/13RQkVSr5A7c3mOGBYPZtPMEDoQWPhi2Z/view?usp=sharing

Adjunto archivo de cada caso

Muchas gracias

Enlace a comentario
Compartir con otras webs

la primera parte es una eventualidad que esperaba no se presentaría :( y tiene otra situación a prevenir/corregir con las fórmulas que ya pusiste en el concepto de "movimiento del mes" en algunos casos (estoy en ello, si no se adelanta algún participante)

la segunda parte va la propuesta en el adjunto (mismo procedimiento: .zip > .bas > etc.)

saludos,
hector.

sinGrupos.zip

Enlace a comentario
Compartir con otras webs

En 26/12/2018 at 8:28 , Manuel TR dijo:

... sobre la primera parte... ojala se pueda resolver

resulta que sí encontré (posibles y varias pero no creo que todas) situaciones que necesitan ser cuidadosamente tratadas, considerando que cada "grupo" de registros/cuentas va delimitado al final por 4 conceptos (saldo anterior > movimiento del mes > saldo actual > saldo total)

la propuesta es resolver la separación del reporte con 6 procedimientos llamados en secuencia (desarrollados por separado para su análisis y comprensión) como lo son:

  1. cazaFantasmas: encontré en algunas hojas-mes que hay "grupos" (los 4 conceptos) que NO traen registros previos, para evitar que estorben se eliminan antes de cualquier otro proceso
  2. modificaSumas: el concepto "saldo actual" va precedido de "movimiento del mes" cuya sumatoria se interrumpe por el concepto "saldo anterior", se cambia la función SUMA por si algún corte la interrumpe
  3. preparaFase1: es la inserción de los cortes (van y vienen) y en el medio las filas de los encabezados (primer grupo para fácil inserción en el resto de separaciones)
  4. insertaFilas: es la inserción en cada corte para las primeras 11 filas de encabezados de cada "siguiente página"
  5. formulasCortesVAN: para identificar cuales son los conceptos que se cortan por la inserción de la suma de la hoja (el corte por VAN)
  6. formulasMovMes: el ajuste final de la suma para el concepto de "movimiento del mes"

este último procedimiento NO ajusta el "primer corte" (los 4 conceptos del primer grupo) porque las celdas "combinadas" de los encabezados ESTORBAN (y no quise alargar más los procedimientos)

como dije, no creo haber podido "simular" toda (posible) eventualidad de "donde cae" un corte y que conceptos o registros "separa" (?)

el siguiente paso es que comentes las fallas que encuentres (y que situación las causa) para adaptar y encontrar la forma de adelgazar/agilizar los procedimientos (?)

mismo proceso de los anteriores (.zip > .bas > etc.)

saludos,
hector.

ajustaCortesV3.zip

Enlace a comentario
Compartir con otras webs

Hola Hector,  estuve un poco corto de tiempo por lo cual no pude responderte antes, pues bueno revise la macro y encontre solo una observación al respecto, cuando el corte de hoja termina justo en "movimiento anterior", la sumatoria del  "VAN" se despalaza una celda a la derecha es decir, las sumatorias deben realizarse tanto en la columna F y G, pero las sumatoria se hacen en la columna  G y H, por lo demas me parece que esta bien y me resulta mas que suficiente,  muchas gracias :)

Enlace a comentario
Compartir con otras webs

Hace 1 hora, Manuel TR dijo:

cuando el corte de hoja termina justo en "movimiento anterior", la sumatoria del  "VAN" se despalaza una celda a la derecha

  1. en el procedimiento "formulasCortesVAN" hay un grupo dentro del "Select ... End Select" el grupo es: Case "saldo anterior:"
  2. el siguiente grupo es: Case "movimiento del mes:", "saldo total:", ""
  3. DOS lineas previas hay una instrucción: => .Offset(, 2).Resize(, 2).Formula = "=sum(" & b & ")" (seguida de un End If)
  4. modifica el primer 2 (dos) por 1 (uno): => .Offset(, 1).Resize(, 2).Formula = "=sum(" & b & ")"

saludos,
hector.

Enlace a comentario
Compartir con otras webs

En 26/12/2018 at 1:01 , Héctor Miguel dijo:

la primera parte es una eventualidad que esperaba no se presentaría :( y tiene otra situación a prevenir/corregir con las fórmulas que ya pusiste en el concepto de "movimiento del mes" en algunos casos (estoy en ello, si no se adelanta algún participante)

la segunda parte va la propuesta en el adjunto (mismo procedimiento: .zip > .bas > etc.)

saludos,
hector.

sinGrupos.zip

Hola Hector,

Disculpa la molestia, lo que pasa es que se me olvido contemplar en "la segunda parte" (que esta bien) que al final de todos los registros (último corte de página) en la columna "H" sin dejar fila en blanco diga "TOTAL" y que sumen tanto la columna " i" y  " j", considerando  la sumatoria que arrastra del corte de página anterior.

https://drive.google.com/file/d/1qdbBGY8ZGIebI5iReIOqczKJjMxlknLt/view?usp=sharing

Gracias.

Enlace a comentario
Compartir con otras webs

En 7/1/2019 at 9:48 , Manuel TR dijo:

que al final de todos los registros (último corte de página) en la columna "H" sin dejar fila en blanco diga "TOTAL" y que sumen tanto la columna " i" y  " j", considerando  la sumatoria que arrastra del corte de página anterior

no entiendo (?)...

quieres que en la última hoja de corte aparezca un "total-total" que considere solo el "vienen" de la última hoja ?, o quieres una sumatoria de todas las cuentas (desde la primer hoja de corte) ?

saludos,
hector.

Enlace a comentario
Compartir con otras webs

Hace 10 horas, Manuel TR dijo:

la sumatoria del vienen de la última hoja más los registros que están en la última hoja

el enlace al archivo no funciona (igual que el anterior) :(

te refieres al modelo que contiene (sub)divisiones por cuenta ?, o al que tiene todos los registros "de corrido" ?

saludos,
hector.

Enlace a comentario
Compartir con otras webs

Hace 3 horas, Manuel TR dijo:

al que tiene todos los registros de corrido

en el último procedimiento del modulo "sinGrupos" > Private Sub ajustaFormulas()
en el medio de las últimas dos líneas (Next y End Sub)
=> agrega lo siguiente:

  n = WorksheetFunction.Max(Evaluate("transpose(if(" & k & "=""vienen"",row(" & k & ")))"))
  With Range("h" & g + 1)
    .Value = "TOTAL:"
    .Offset(, 1).Resize(, 2).Formula = "=sum(" & Range("i" & n).Address(0, 0) & ":" & Range("i" & g).Address(0, 0) & ")"
  End With

prueba y comentas ?

saludos,
hector.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.