Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
Este tema está ahora archivado y está cerrado a más respuestas.
Saludos Amigos
Tengo esta macro que me ayuda a calcular la antigüedad medida desde la fecha de ingreso hasta la fecha accidente sin embargo solo me da como resultado el año como un numero entero y no me toma en cuenta la diferencia de los meses restantes entre ambas fechas la cual requiero expresar como decimales de forma anualizada :
Ejemplo: 15/08/2010 - 17/01/2004 = 13 Años (Resultado Actual)
15/08/2010 - 17/01/2004 = 05 meses de diferencia entre la fecha de ingreso y la fecha del accidente
05 meses / 12 Meses = 0,42 Años (Diferencia en Meses Anualizada)
15/08/2010 - 17/01/2004 = 13, 42 años (Resultado Esperado)
Meses Años
1/12 0,08
2/12 0,17
3/12 0,25
4/12 0,33
5/12 0,42
6/12 0,50
7/12 0,58
8/12 0,67
9/12 0,75
10/12 0,83
11/12 0,92
Private Sub TextBox8_Change() ' Calculo de la Antiguedad ' Definir una variable para la fecha del Accidente Dim fechaAccidente As Date ' Asignar la fecha del Accidente fechaAccidente = TextBox8 ' Obtener la fecha de Ingreso fechaIngreso = TextBox7 ' Calcular la Antiguedad Dim Antiguedad As Integer Antiguedad = Year(fechaAccidente) - Year(fechaIngreso) ' Ajustar la Antiguedad si aún no ha tenido su cumpleaños este año If fechaIngreso > DateSerial(Year(fechaAccidente), Month(fechaAccidente), Day(fechaAccidente)) Then Antiguedad = Antiguedad - 1 End If ' Mostrar el resultado en la ventana de mensajes TextBox9 = Antiguedad End SubDe igual modo tengo esta otra macro que me ayuda a calcular la Edad medida desde la fecha de nacimiento hasta la fecha actual:
Private Sub TextBox6_Change() ' Calculo de la Edad ' Definir una variable para la fecha de nacimiento Dim fechaNacimiento As Date ' Asignar la fecha de nacimiento fechaNacimiento = TextBox6 ' Obtener la fecha actual Dim fechaActual As Date fechaActual = Date ' Calcular la Edad Dim edad As Integer edad = Year(fechaActual) - Year(fechaNacimiento) ' Ajustar la edad si aún no ha tenido su cumpleaños este año If fechaNacimiento > DateSerial(Year(fechaActual), Month(fechaActual), Day(fechaNacimiento)) Then edad = edad - 1 End If ' Mostrar el resultado en la ventana de mensajes TextBox3 = edad End SubSin embargo no expresa el resultado que deseo ya que el calculo correcto debe ser hecho desde la fecha de nacimiento hasta la fecha accidente pero al momento de replicar el procedimiento en los siguientes términos me arroja un error:
Private Sub TextBox6_Change() ' Definir una variable para la fecha de nacimiento Dim fechaAccidente As Date ' Asignar la fecha de nacimiento fechaAccidente = TextBox8 ' Asignar la fecha del Accidente fechaNacimiento = TextBox6 ' Calcular la Edad Dim edad As Integer edad = Year(fechaAccidente) - Year(fechaNacimiento) ' Ajustar la edad si aún no ha tenido su cumpleaños este año If fechaNacimiento > DateSerial(Year(fechaAccidente), Month(fechaAccidente), Day(fechaAccidente)) Then edad = edad - 1 End If ' Mostrar el resultado en la ventana de mensajes TextBox3 = edad End SubUsuario: Prueba
Clave: Prueba12345
Mucho les sabre agradecer la ayuda que me puedan brindar
PRUEBA.xlsm
Editado el por jues