Tengo un libro de excel para controlar un grupo de trabajadores.
Tengo una primera hoja llamad INICIO, con botones que me despliegan formularios para agregar, modificar o liminar datos y campos de búsqueda basados en fórmulas de excel en las mismas celdas.
En la hoja DATOS tengo todos los datos del personal.
En otra tengo las licencias médicas presentadas.
En ésta última tengo 5 columnas:
[RUT TRABAJADOR][NOMBRE][INICIO LICENCIA][DIAS][TERMINO LICENCIA]
Estos datos se van llenando a medida que el personal presenta licencia.
Necesito hacer lo siguiente:
En la hoja inicio, tengo una celda donde ingreso el RUT de la persona.
Entonces me despliega todos los datos tomados de la hoja DATOS por medio de una fórmula creada por mi bastante sencilla que producto que los RUT, son únicos, busca por RUT y me muestra los datos correctos.
Necesito complementar la información, y que me muestre la última licencia presentada por el RUT, pero el problema es que en esta hoja, el RUT, puede repetirse tantas veces como licencias presente el trabajador, por eso las fórmulas anteriores no me sirven.
Necesito ayuda para crear la fórmula correcta.
Tengo el siguiente código:
Código:
Alguna idea??Function buscalicencia(a, b) With Sheets("licencias") filalibre = .Range("A1").End(xlDown).Offset(1, 0).Row 'la variable filalibre guarda el nro. de la primer celda vacía. dato = a rango = "A2:A" & filalibre Set midato = .Range(rango).Find(dato, LookIn:=xlValues, SearchDirection:=xlPrevious, LookAt:=xlWhole) If Not (midato) Is Nothing Then ubica = midato.Address(False, False) buscalicencia = .Range(ubica).Offset(0, b).Value Set midato = Nothing End If End With End Function
Les cuento que por una extraña razón, la fórmula me funciona correctamente pero sólo en ocasiones no me entrega valores correctos.
¿Será por que la columna RUT no está ordenada?