Marcar entrada refrigerio y salida de personal

Hola que tal soy novato pero con muchas ganas de aprender bueno les explico mi problema TENGO UN formulario donde tengo un textbox y 2 botones 1 dice marcar y el otro salir bueno lo que dese es que en el textbox se ingrese el código del empleado y al dar click en el botón se marque su hora de entrada de dicho empleado (a001) esto seria la celda (c4) y en la celda (c5) quisiera que cuando marque el mismo empleado (a001) se marque su hora de salida al refrigerio y así sucesivamente por caada empleado no se si me explique bien pero deseo que me ayuden .. De antemano muchas gracias..

1 Respuesta

Respuesta
1
¿En qué columna se guarda el código del empleado?
si en c4 =hora entrada y en c5=salida el codigo empelado esta en b4 ?
Hola que tal gracias por la inmediata respuesta bueno mira tengo el textbox y los dos botones en un formulario yo quiero que cuando le ingrese a0001 al textbox y de en el botón marcar . el dato ingresado en el textbox (a0001) se ingrese en la celda (e9) y en la celda (f9) se ingrese la hora que esta marcando en este caso yo lo estoy haciendo mediante una fórmula =SI(ESBLANCO(E9),"", SI(F9="", AHORA(), ¿F9)) eso seria su hora de ingreso y en la segunda marcación del mismo personal osea a0001 quiero que se marque su hora de salida al refrigerio pero no se como hacer eso? ¿No se si me deje entender? Si no me deje entender te puedo brindar el archivo .. muchas gracias
En el evento click de tu botón marcar debe ir esto
Dim fila As Integer
Dim r As Range
fila = Application.WorksheetFunction.CountA(Range("E9:E65536"))
fila = (fila + 9)
' verificamos si el cod ya existe
If Application.WorksheetFunction.CountIf(Range("E9:E65536"), UCase(Trim(TextBox1))) >= 1 Then
' si existe lo buscamos
For Each r In Range("E9" & ":" & "E" & fila)
If r = UCase(Trim(TextBox1)) Then
If r.Offset(0, 2) = Empty Then
' si la hora de refrigerio ya fue marcada, no marca otra vez,
'evita que usuario modifique la hora ya marcada
r.Offset(0, 2) = Time: Exit For
Else
Exit For
End If
End If
Next
Else
' si no estab ingresado lo ingresamos como primera entrada
Range("E" & fila) = UCase(Trim(TextBox1))
Range("F" & fila) = Time ' hora de salida
End If
Set r = Nothing
Asume la hoja activa como receptor y utiliza desde fila 9 hacia abajo en forma secuencial
rangos columnas E - F -G
E para código empleado
F hora entrada
G hora salida
No olvides CERRAR la pregunta
¿Hola muchas gracias esta muy buena tu ayuda pero no puedo marcar 4 veces? Osea en f hora de entrada en g salida refrigerio en h entrada de refrigerio y en i la salida del empleado por favor aver si me puedes ayudar en esto te lo agradecería bastante .
Así:
Dim fila As Integer
Dim r As Range
fila = Application.WorksheetFunction.CountA(Range("E9:E65536"))
fila = (fila + 9)
' verificamos si el cod ya existe
If Application.WorksheetFunction.CountIf(Range("E9:E65536"), UCase(Trim(TextBox1))) >= 1 Then
For Each r In Range("E9" & ":" & "E" & fila)
If r = UCase(Trim(TextBox1)) Then
If r.Offset(0, 2) = Empty Then r.Offset(0, 2) = Time: Exit For
If r.Offset(0, 2) <> Empty And r.Offset(0, 3) = Empty Then r.Offset(0, 3) = Time: Exit For
If r.Offset(0, 3) <> Empty And r.Offset(0, 4) = Empty Then r.Offset(0, 4) = Time: Exit For
End If
Next
Else
' si no estab ingresado lo ingresamos como primera entrada
Range("E" & fila) = UCase(Trim(TextBox1))
Range("F" & fila) = Time ' hora de salida
End If
Set r = Nothing
No olvides ERRAR la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas