Userform en excel

Quisiera tener un userform en donde me consulta por el numero de cedula la fecha de ingreso del empleado, y quiero que me diga cuantos años, meses y días tiene desde la fecha de ingreso hasta hoy
eje. Ingreso 24/01/2004  hoy 05/08/2004 4 años, 6 meses, 10 dias
como hago el visual basic???

1 respuesta

Respuesta
1
Suponiendo que el control del userform donde se introduce la fecha de ingreso se llamara tbFechaIngreso y que hubiera un control label llamado lblTranscurrido en el que se pondría el tiempo transcurrido en texto, el código podría ser:
Private Sub tbFechaIngreso_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim strI As String
    If Not IsDate(Me.tbFechaIngreso) Then
        MsgBox "la fecha introducida no es correcta", vbCritical + vbOKOnly
        Me.tbFechaIngreso.SetFocus
    End If
    strI = Evaluate("=datedif(" & CLng(CDate(Me.tbFechaIngreso)) & ",today(), ""y"")") & " año/s, "
    strI = strI & Evaluate("=datedif(" & CLng(CDate(Me.tbFechaIngreso)) & ",today(), ""ym"")") & " mes/es, "
    strI = strI & Evaluate("=datedif(" & CLng(CDate(Me.tbFechaIngreso)) & ",today(), ""md"")") & " día/s."
    Me.lblTranscurrido = strI
End Sub
Muchas gracias por ayuda, pero solo quisiera que me hiciera el calculo tomando en cuenta unicamente la fechade ingreso y today, no ocupo que me genere ningún mensaje
Ya que cuando consulta algún empleado le de la antigüedad que tiene tomando en cuenta la fecha de ingreso hasta hoy
Gracias de antemano..
No tengo forma de saber dónde está almacenada la fecha de ingreso. Como hablabas de un formulario, supuse que la fecha era introducida en algún control, de ahí el código, el cual tendrás que adaptar a lo que necesites dado que, repito, no puedo saber de dónde la sacas.
Ya hice la rutina y solo tuve que utilizar una parte, aquí est la rutina
Antiguedad.Value = Evaluate("=DATEDIF(" & CLng(CDate(aFIngreso)) & ",TODAY(),""Y"")") & " Año/s "
Antiguedad.Value = Antiguedad & Evaluate("=DATEDIF(" & CLng(CDate(aFIngreso)) & ",TODAY(),""YM"")") & " Mes/es "
Antiguedad.Value = Antiguedad & Evaluate("=DATEDIF(" & CLng(CDate(aFIngreso)) & ",TODAY(),""MD"")") & " Día/s."
Muchísimas gracias...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas