Macro para hallar dato especifico

Existe un archivo en excel el cual registra la hora de entrada y la hora de salida de los empleados, este arroja un solo tipo de archivo acumulado por día, de este se requiere identificar los retardos del personal a la entrada a la compañía de acuerdo con la hora asignada, como te muestro en la gráfica solo hay un registro que cumple pero al condicionarlo los demás se me dan como incumplido y esto no es cierto, el archivo no me genera ningún consecutivo para identificar cual fue el primer registro marcado estoy loco con esto y no se como hacerlo espero me pueda colaborar gracias

1 respuesta

Respuesta
1

H o l a:

Envíame tu archivo y me explicas con ejemplos qué datos tienes y qué es lo que esperas como resultados, utiliza colores, comentarios incluso en una hoja puedes poner lo que tienes y en otra hoja lo que quieres como resultado.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “julio valencia carrillo” y el título de esta pregunta.

Saludos Dante,

Ya te envíe a tu email lo que me solicitaste, espero me puedas ayudar o guiar para una solución definitiva.

Gracias.

Te anexo la macro

Sub ValidarData()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.StatusBar = False
    Set h1 = Sheets("data")
    Set h2 = Sheets("Horarios")
    Set h3 = Sheets("Hoja3")
    '
    h3.Range("A:I").ClearContents
    h3.[I1] = "Cumplimiento"
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Range("A1:H" & u).AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=h3.Range("M1:M2"), CopyToRange:=h3.Range("A1"), Unique:=False
    '
    u = h3.Range("A" & Rows.Count).End(xlUp).Row
    h3.Range("A1:H" & u).RemoveDuplicates Columns:=Array(1, 3), Header:=xlYes
    '
    u = h3.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To u
        Application.StatusBar = "Procesando registro: " & i & " de: " & u
        Set b = h2.Columns("A").Find(h3.Cells(i, "C"), lookat:=xlWhole)
        If Not b Is Nothing Then
             If h3.Cells(i, "B") >= h2.Cells(b.Row, "B") + TimeSerial(0, 1, 0) Then
                h3.Cells(i, "I") = "Retardo"
            Else
                h3.Cells(i, "I") = "Horario Cumplido"
            End If
        Else
            h3.Cells(i, "I") = "No es del Almacén"
        End If
    Next
    Application.ScreenUpdating = True
    Application.StatusBar = False
    MsgBox "Fin"
End Sub

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas