Codigo para imprimir Nomina.

20/07/2009 - 01:34 por De_Corando. | Informe spam
Tengo una lista de informacion de una nomina,
En Hoja 1
Un renglon o fila para cada empleado, los cuales varian por semana de
3 a 15.
Las columnas son desde A hasta la AQ que contiene:
Num sem, fecha de ini y Final, num, empleado, sueldo, Hrs vac y Otr
para cada dia de la semana,Otros Ingresos, 7 deducciones semales,
resumen o total de Hrs Vac y Otr de los 7 dias de la semana.

En Hoja 2
Tengo un recibo con los mismos datos de la hoja 1, en diferentes
Columnas y renglones (filas). Un recibo para el primer empleado va
desde A1 hasta la H26, la Columna I esta en blanco, para el segundo
empleado va desde la J1 Hasta la P26.
Esto es, 2 recibos por hoja de impresion.

Para los demas empleados es cuestion de sacar copias de estos recibos
y pegarlos en la fila 27 para los otros dos empleados.

En (A3) de la Hoja 2, determino la Semana a Imprimir.

Aqui viene mi consulta:
Quiero pasar la informacion de la Hoja 1 a la Hoja 2, en los recibos
predisenados desde el primer empleado (B3 : AQ3) hasta el Ultimo que
puede variar en cada semana.

He Intentado ciertos codigos, pero resulta algo laboriozo hacerlo sin
conocer el total de empleados.
Lo que necesito es un Codigo para tal evento.

De antemano agradezco la atencion que se le preste a esta consulta.

Para mayor comprension, dejo el enlace del ejemplo:
http://www.box.net/shared/jms440bfxl

Un saludo a todos.
Corando.
 

Leer las respuestas

#1 Héctor Miguel
20/07/2009 - 07:29 | Informe spam
hola, Corando !

1) el archivo de tu enlace "pesa" la friolera de ~2 Mb (pero...) eliminando las filas en exceso
(que solo traen formatos de algun copy/paste cada ves que ejecutas la macro) queda en +/- 50 Kb

2) para "mi gusto" (personal, obviamente) NO es necesario "repetir" el formato de recibo n_pares de nominas
si puedes imprimir ese formato (las mismas n_veces) cambiando en algun campo solo la fila "correspondiente"
para la impresion (macro) solo necesitaras un bucle/ciclo/for...next que haga un "Step 2" (actualizas e imprimes SIN copiar)

3) el control de cuales son las filas primera y ultima a imprimir (de tu hoja "saved") segun la semana seleccionada...
la puedes obtener (p.e. por formulas) digamos en las celdas G1 y G2 (de la misma hoja "saved")
[G1] =match(a3,b:b,0)
[G2] =if(countif(b:b,a3+1),match(a3+1,b:b,0)-1,match("zzzzz",f:f))
(o puedes obtenerlas por algun algoritmo similar via macros ?)

4) los "campos" con datos variables y dependientes de "su fila" (en tu hoja "payroll") deberias rellenarlos por funciones
si te decides por la sugerencia en el presente, sugiero usar la funcion =indice(columna_payroll,fila_correspondiente)
para el "segundo" recibo (parte derecha de la hoja "payroll") podrias usar como "indice" la fila del recibo 1 (izquierda) mas uno (?)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
Tengo una lista de informacion de una nomina,
En Hoja 1
Un renglon o fila para cada empleado, los cuales varian por semana de 3 a 15.
Las columnas son desde A hasta la AQ que contiene:
Num sem, fecha de ini y Final, num, empleado, sueldo, Hrs vac y Otr para cada dia de la semana
Otros Ingresos, 7 deducciones semales, resumen o total de Hrs Vac y Otr de los 7 dias de la semana.
En Hoja 2
Tengo un recibo con los mismos datos de la hoja 1, en diferentes Columnas y renglones (filas).
Un recibo para el primer empleado va desde A1 hasta la H26, la Columna I esta en blanco
para el segundo empleado va desde la J1 Hasta la P26. Esto es, 2 recibos por hoja de impresion.
Para los demas empleados es cuestion de sacar copias de estos recibos y pegarlos en la fila 27 para los otros dos empleados.
En (A3) de la Hoja 2, determino la Semana a Imprimir.

Aqui viene mi consulta:
Quiero pasar la informacion de la Hoja 1 a la Hoja 2, en los recibos predisenados desde el primer empleado
(B3 : AQ3) hasta el Ultimo que puede variar en cada semana.
He Intentado ciertos codigos, pero resulta algo laboriozo hacerlo sin conocer el total de empleados.
Lo que necesito es un Codigo para tal evento.
De antemano agradezco la atencion que se le preste a esta consulta.

Para mayor comprension, dejo el enlace del ejemplo:
http://www.box.net/shared/jms440bfxl

Preguntas similares