Buscar valor de celda y copiar hora en celda contigua

Hola que tal, estoy haciendo un control de acceso de personal. Ya he conseguido casi todo, sin embargo quisiera que funcione conforme a la siguiente filosofía:

1.- Cuando el empleado salga debe registrar su salida para ello necesito que al oprimir un botón de Registrar Salida busque el ID del empleado en la Columna A


2.- Conforme a la fecha del registro debe verificar si el empleado registró su entrada, si no lo hizo muestra msgbox "Emplado NO registró su Entrada, acuda a Recursos Humanos".

3.- Si el empleado es localizado y registró su entrada entonces debe ingresar la hora de salida en una celda contigua.


Otra información de aporte:

Mediante un formulario (Combobox y textbox) se ingresan los datos del empleado y los copia en estas columnas (siguiente celda vacía)

COLUMNA A COLUMNA B COLUMNA C.... COLUMNA G

id_Usuario Fecha Actual Hora de Entrada Aquí debe ir hora de salida

El formulario tiene 2 botones; 1 para registrar la ENTRADA otro para registrar la SALIDA

Para el registro de Entrada ya está resuelto, sólo me falta que se registre la salida, cómo lo debe hacer?

Buscar en la columna A el ID que se ingresa mediante el combobox, luego coincidir con la fecha del dia actual COLUMNA B y finalmente ingresar la hora de salida en COLUMNA G. Si el usuario NO existe en el rango del día que muestre el mensaje: "Usuario NO registró su entrada".

No hay forma de adjuntar archivos en este foro?

Muchas gracias

1 Respuesta

Respuesta
1

Te anexo una macro para copiar la hora.

Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Por.dam
strRango = "A2:A" & ActiveCell.SpecialCells(xlLastCell).Row
ComboBox1.RowSource = strRango
End Sub
Private Sub CommandButton1_Click()
'Por.dam
With Me.ComboBox1
intx = .ListIndex
End With
idempleado = Cells(intx + 2, 1).Value
fechaactual = Cells(intx + 2, 2).Value
horaentrada = Cells(intx + 2, 3).Value
If fechaactual = Date Then
If horaentrada = "" Then
MsgBox ("Emplado " & idempleado & vbNewLine & vbNewLine & _
"NO registró su Entrada, acuda a Recursos Humanos")
Else
'Registrar salida
If Cells(intx + 2, 7).Value = "" Then 'Permite salida
Cells(intx + 2, 7).Value = Time
Else
MsgBox ("Emplado " & idempleado & vbNewLine & vbNewLine & _
"YA registró su SALIDA, favor de verificar con Recursos Humanos")
End If
End If
Else
MsgBox ("Emplado " & idempleado & vbNewLine & vbNewLine & _
"NO registró su Entrada, acuda a Recursos Humanos")
End If
End Sub

Saludos.dam

Dam, muchas gracias por tu respuesta. Omití comentar que el ComboBox lee los datos de una matriz ubicada en otra hoja llamada Empleados, en el momento en que el empleado registra su entrada y oprime el botón "Entrada" se copian los datos del combobox, la fecha y la hora en las columnas A,B,D....

Para registrar la Saluda debe ingresar su ID de Empleado desde el mismo combobox, e ingresar su password (hasta aquí está hecho) ya que ingresó sus datos y oprime el botón "Salida" es cuando debe buscar en la hoja "Acceso" Columna A si el empleado (ID) se registró en el día y en la columna G colocar la hora en que sale.

Cómo podría mandarte el ejemplo archivo adjunto?

Gracias nuevamente

De la macro que te envié debes tomar el código para hacer la lectura del valor del combo y buscarlo en "Acceso" y actulizar la hora.

Si lo anterior es algo complicado, con gusto reviso tu archivo.

Por favor, cierra esta pregunta y abre una nueva con la solicitud completa de lo que necesitas.

Mi correo:

[email protected]

En el asunto pon el mismo nombre de la pregunta y también pon cuál es tu usuario de todoexpertos, ya que a veces son diferentes el usuario y el correo.

Saludos. DaM

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas