Código VB para buscar valores MIN y MAX a partir de un ID único

Deseo hacerte una consulta relacionada con la creación de un código en VB para aplicaciones de Excel 2013

De un lector biométrico obtengo el marcaje diario del personal, tanto entrada y salida como la hora de almuerzo, los datos están separados en dos pestañas.

Cada persona tiene asignado un ID único, que se registro en el biométrico para que puedan marcar entradas y salidas, con el ID realizo las búsquedas diarias para generar los reportes de asistencia.

En un solo archivo de Excel tengo almacenados los marcajes del años.

Cada persona tendría que hacer únicamente cuatro marcajes al día, sin embargo algunas personas aseguran su marcaje haciéndolo hasta 7 o diez veces, igualmente la hora de almuerzo, así que para filtrar los cuatro marcajes que necesito utilizo esta formula

{=min(si(codigo=codigo; si(fecha=fecha; hora min)))} esta es para el marcaje mas temprano.

{=max(si(codigo=codigo; si(fecha=fecha; hora max)))} y esta para el marcaje mas tarde, de esta manera puedo filtrar por ID de usuario y por fecha y obtener los registros para generar los reportes.

Estas formulas funcionan adecuadamente hasta un cierto limite, ya que constantemente tengo que estar modificando las formulas por la cantidad de personal que ya va llegando a las 800 personas, cada ves que añado un nuevo día a la hoja donde almaceno los marcajes.

Viendo estos inconvenientes decidí hacer un formulario que me permitiera obtener los mismo datos de esta hoja de excel, pero si la tardanza que supone hacerlo con las formulas. El diseño del userform es el siguiente:

f

El problema esta en la asignación de los valores por fecha ya que tendría que especificar el día del que necesito los datos.

También cree este otro formulario donde pudiera obtener los mismos datos pero agrupados por unidades administrativas en lugar de obtenerlos individualmente:

Esta es la ayuda que necesito, para poder obtener los datos, y añadir un botón que me permita imprimir los datos de la misma manera o alguna similar a como se muestran en pantalla.

1 Respuesta

Respuesta
1

Puedes hacerlo con una tabla dinámica

Pasas todos tus datos a la tabla dinámica y ahí puedes filtrar por fecha y/o por ID y te muestra el número de veces que se registró en el mismo día.

Este es un ejemplo para crear una tabla dinámica:

https://www.youtube.com/watch?v=OVMtW8e7ATo 

Saludos. Dante Amor

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas