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

Control persona dias vacaciones

Ver el tema anterior Ver el tema siguiente Ir abajo

Control persona dias vacaciones

Mensaje por nuganda el Miér Oct 22, 2008 3:13 pm

Hola a todos:

Para el control de personal tengo que realizar la siguiente tarea: comprobar que no excedan del los dias de vacaciones que tengan derecho a disfrutar segun la antigüedad de cada uno.

Para ello se va realizando anotaciones en sus respectivas fichas (Cada uno del personal tiene un libro excel con diferentes hojas segun el año en curso) y estan almacenadas en diferentes subcarpetas segun en que departamento esten adscritos.

El control se llava en otro libro excel que contiene a todo el personal con sus datos personal y tambien la ruta completa donde se encuentra en disco y tambien el nombre del fichero).

El problema es como hacer para que al ejecutar la macro vaya leyendo uno a uno (segun esa ruta completa), y vaya grabando los datos que necesito en el libro de control de personal

Gracias

nuganda

Masculino Cantidad de envíos : 15
Edad : 53
Ciudad - Pais : Madrid
Fecha de inscripción : 22/10/2008

Volver arriba Ir abajo

Re: Control persona dias vacaciones

Mensaje por GalileoGali el Jue Oct 23, 2008 5:41 pm

Bienvenido nuganda:
el codigo siguiente captura, sin abrir el archivo, el dato contenido en archivo Excel, en la hoja 1 en la celda A3:
Código:
Sub test()
ret = Application.ExecuteExcel4Macro("'C:\Documents and Settings\Galileogali\Escritorio\[peps.xls]Hoja1'!r3c1")
End Sub

Ahora bien, habria que tener mas datos de tus archivos para saber como armar el path y como ir acoplando los datos en tu archivo resumidor....

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
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: Control persona dias vacaciones

Mensaje por nuganda el Vie Oct 24, 2008 11:17 am

Hola y gracias por la bienvenida y tu comentario e intentare explicar lo que necesito hacer:

Personal.xls: (es el que tu has llamado archivo resumidor)
APELLIDOS - DNI - UNIDAD - INGRE - TR EN 2008 - VACACIONES - RUTA - MOSCOSO OK - VACACIONES OK
(A2 - B2 - C2 - H2 - O2 - Q2 - G2 - R2 - S2 )


421 Trabajadores (a2:a422) Cada uno tiene una ficha (Un libro en excel y cada uno de ellos varias hojas que refieren al año trabajado).
Estan grabados en diferentes carpetas segun en que unidad esten adscritos y el nombre del fichero es su DNI (rellenado con 0 a su izquierda hasta completar los 8 dígitos necesarios).

Necesito ahora llevar los valores Q2 (que son los dias de vacaciones que tienen derecho a disfrutar segun antiguedad) a la ficha en la celda B32 en cada ficha de los trabajadores y de este archivo abierto copiar el contenido de la celda AL17 a la S2 del Personal.xls

En principio habia llenado un campo con la ruta completa para abrir dicha ficha leyendo secuencialmente el fichero personal.xls pero tambien se prodria hacer yendo por carpetas, es decir ir abriendo todos y cada uno de las fichas por unidades e ir a buscarlos en el personal.xls por el dni.

Y es esta la ayuda que os solicito, creo que la segunda forma pueda ser mas sencilla de hacer.

Un saludo y muchas gracias

nuganda

Masculino Cantidad de envíos : 15
Edad : 53
Ciudad - Pais : Madrid
Fecha de inscripción : 22/10/2008

Volver arriba Ir abajo

Re: Control persona dias vacaciones

Mensaje por GalileoGali el Vie Oct 24, 2008 6:03 pm

He convertido el codigo inicial en una UDF, pero NO FUNCIONA con ExecuteExcel4Macro.
Ahora bien la Macro esta pensada para pasarle los parametros que te toca a vos ajustar.

Código:
Sub TrasDato(Ruta As String, dni As Variant)
Const Ubica As String = "2008'!r2c17"
Ruta = "'" & Ruta & "\[" & dni & ".xls]" & Ubica
TrasDato = Application.ExecuteExcel4Macro(Ruta)
End Sub


Última edición por GalileoGali el Sáb Oct 25, 2008 8:16 am, editado 1 vez

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
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: Control persona dias vacaciones

Mensaje por nuganda el Vie Oct 24, 2008 8:23 pm

Gracias GalieloGali ... Mis conociemientos del VBA son muy limitados y el uso de esa funcion no la acabo de entender muy bien, como modificarla y lo que es mas como pasar los valores asi que te detallo mejor los dos procesos que he de realizar con capturas de las hojas. Te pido mil perdones por la reiteracion de la peticion.

Esta primera son las carpetas donde estas todas las fichas (dni.xls) de cada trabajador.

En cada carpeta hay un numero de fichas como esta con el nombre del dni.xls del trabajador. (Espero que se pueda ver los dos procesos independientes que he de realizar.
[Tienes que estar registrado y conectado para ver este vínculo]
Y en este otro el de personal.xls contiene lo siguiente:
[Tienes que estar registrado y conectado para ver este vínculo]
La ruta comun a todas es:
I:\REC_HUMA\CONTROL PRESENCIA\CONTROL PRESENCIA\TRABAJADORES\Unidad 9999\99999999.xls (dato que estaria de todas formas en personal.xls en la celda G2 aunque preferia no utilizarlo si se puede evitar esta forma de buscarlo)

En nombre personal.xls no hay problemas en llamarlo de otra forma, de hecho lo tengo de otra manera, solo era para explicarme mejor ya que da mas idea de su contenido.

Te agradezco la ayuda que me estas brindando pero ... mis conocimientos del tema no llega a estos niveles. De todas formas miles de gracias.
Javier

nuganda

Masculino Cantidad de envíos : 15
Edad : 53
Ciudad - Pais : Madrid
Fecha de inscripción : 22/10/2008

Volver arriba Ir abajo

Re: Control persona dias vacaciones

Mensaje por GalileoGali el Vie Oct 24, 2008 10:16 pm

Se torna muy complejo explicar, adaptar, con los datos que proporcionas, creo que si tuvieras un minimo de VBA, podrias adaptar perfectamente la MACRO .....
Puedo solo aclararte que empezaste diciendo que tenias el dato RUTA como campo en tu tabla y en eso me base, que buscabas el dato en Q2 y eso es el equivalente a r2c17, es decir Fila 2 Columna 17 (es Q2).
en la Macro que te mande faltaria Estandarizar la variable Dni, mas o menos asi
dni = Application.Rept("0", 8 - Len(dni)) & dni
con los elementos que tenes deberias estar en condiciones de enlazar los datos de una archivo a otro, rellenado las Tablas en los casos de tabal resumen, etc.....

Este codigo esta Probado:
Código:
Sub TrasladarDato()
Dim rut As String, unid As String, doc As String, ruta As String
Const Ubica As String = "2008'!r2c17"

With Hoja1

rut = .[C1].Value
unid = .[C2].Value
doc = .[C3].Value
doc = Application.Rept("0", 8 - Len(doc)) & doc
ruta = Trim("'" & rut & "\Unidad " & unid & "\[" & doc & ".xls]" & Ubica)

.[D5] = Application.ExecuteExcel4Macro(ruta)

End With
End Sub


Última edición por GalileoGali el Sáb Oct 25, 2008 8:43 am, editado 1 vez (Razón : Probada la UDF original se detecto una incompatibilidad)

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
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: Control persona dias vacaciones

Mensaje por nuganda el Sáb Oct 25, 2008 7:24 am

Muchísimas gracias GalileoGali por tu tiempo y tus explicaciones y te pido perdón por el abuso para solucionarme un problema sin tener conocimientos de VBA que son prácticamente nulos. De todas formas intentaré solucionarlo con lo que me has explicado.

nuganda

Masculino Cantidad de envíos : 15
Edad : 53
Ciudad - Pais : Madrid
Fecha de inscripción : 22/10/2008

Volver arriba Ir abajo

Re: Control persona dias vacaciones

Mensaje por GalileoGali el Sáb Oct 25, 2008 8:12 am

TENGO QUE LAMENTABLEMENTE INFORMARTE que:
Si bien ExceuteExcel4Macro funciona dentro de una Macro NO FUNCIONA COMO UDF (o al menos esa es la conclusion a la que arribo), asi que despues de varias pruebas he llegado a la conclusion de que este METODO no admite su inclusion en una UDF, con lo cual corrijolos Post anteriores donde puse esa variante como solucion, dejando como valida solamente la MACRO utilizando ese Metodo, para cargar una a una las celdas correspondientes
Mis POSTs anteriores acabo de editarlos......

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
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: Control persona dias vacaciones

Mensaje por nuganda el Sáb Oct 25, 2008 12:41 pm

Muchas gracias por la nueva informacion

nuganda

Masculino Cantidad de envíos : 15
Edad : 53
Ciudad - Pais : Madrid
Fecha de inscripción : 22/10/2008

Volver arriba Ir abajo

Re: Control persona dias vacaciones

Mensaje por Contenido patrocinado


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.