
Macro plantilla asiento contable
Publicado por Quim (4 intervenciones) el 20/08/2016 12:22:53
Buenos dias,
Mi consulta es la siguiente. Trabajo en un departamento contable de una empresa y, entre otras cosas, tengo que elaborar un asiento de nóminas (salarios) mensualmente. Para ello me he creado una plantilla en Excel con 2 pestañas.
-En la primera pestaña aparece una tabla con todos los posibles datos que se pueden dar (pestaña DATOS).
-En la siguiente pestaña (pestaña ASIENTO) es donde tengo programadas 3 macros vinculadas a 3 botones:
a)El primer botón lo que hace es borrar cualquier dato que haya en la hoja para reiniciala (Esta macro funciona CORRECTAMENTE)
b)Un Segundo botón que simplemente copia exactamente los datos que haya de la pestaña DATOS (Esta otra macro también funciona CORRECTAMENTE).
c)Un tercer botón el cual ejecuta 2 acciones:
c.1) Selecciona todas las casillas de las columnas D y E que tengan valor cero y borra su contenido (Este proceso funciona CORRECTAMENTE)
c.2) Un segundo proceso que lo que hace es, rastrear una por una las lineas en que tanto la columna D como la E tengan valor "vacío" y si se da el caso de que estas 2 casillas estan en blanco, elimina la fila completa.
Es pues, en este último proceso donde mi macro no funciona del todo bien. El problema es el siguiente.
La macro, cuando encuentra un caso en que los valores de la columna D y E son vacios elimina la fila, PERO, una vez hecho el cursor se situa una casilla por debajo y luego empieza de nuevo con el siguiente registro. Esto provoca que se salte algunas lineas que SI cumplen la condición por lo que tengo que ejecutar varias veces la Macro para que el resultado final sea el deseado. No es que sea mucha molestia pero desearia que el proceso se ejectuar de una sola vez.
Para arreglar esto he intentado que, una vez se elimina una fila, hacer saltar la casilla activa una fila hacia arribar mediante la instruccion Activecell.offset(-1,0).Select , pero no funciona.
Si alguien pudiera echarme una mano en esto le estaría muy agradecido.
Saludos.
Mi consulta es la siguiente. Trabajo en un departamento contable de una empresa y, entre otras cosas, tengo que elaborar un asiento de nóminas (salarios) mensualmente. Para ello me he creado una plantilla en Excel con 2 pestañas.
-En la primera pestaña aparece una tabla con todos los posibles datos que se pueden dar (pestaña DATOS).
-En la siguiente pestaña (pestaña ASIENTO) es donde tengo programadas 3 macros vinculadas a 3 botones:
a)El primer botón lo que hace es borrar cualquier dato que haya en la hoja para reiniciala (Esta macro funciona CORRECTAMENTE)
b)Un Segundo botón que simplemente copia exactamente los datos que haya de la pestaña DATOS (Esta otra macro también funciona CORRECTAMENTE).
c)Un tercer botón el cual ejecuta 2 acciones:
c.1) Selecciona todas las casillas de las columnas D y E que tengan valor cero y borra su contenido (Este proceso funciona CORRECTAMENTE)
c.2) Un segundo proceso que lo que hace es, rastrear una por una las lineas en que tanto la columna D como la E tengan valor "vacío" y si se da el caso de que estas 2 casillas estan en blanco, elimina la fila completa.
Es pues, en este último proceso donde mi macro no funciona del todo bien. El problema es el siguiente.
La macro, cuando encuentra un caso en que los valores de la columna D y E son vacios elimina la fila, PERO, una vez hecho el cursor se situa una casilla por debajo y luego empieza de nuevo con el siguiente registro. Esto provoca que se salte algunas lineas que SI cumplen la condición por lo que tengo que ejecutar varias veces la Macro para que el resultado final sea el deseado. No es que sea mucha molestia pero desearia que el proceso se ejectuar de una sola vez.
Para arreglar esto he intentado que, una vez se elimina una fila, hacer saltar la casilla activa una fila hacia arribar mediante la instruccion Activecell.offset(-1,0).Select , pero no funciona.
Si alguien pudiera echarme una mano en esto le estaría muy agradecido.
Saludos.
- PLANTILLA-ASIENTO-NOMINA.zip(29,3 KB)
Valora esta pregunta


0