Calcular la edad exacta de una persona con base en su fecha de nacimiento.

Hola expertos.

Estoy trabajando en un pequeño proyecto "casero", y necesito establecer en cada uno de los cuadros (de la imagen) Años, Meses y Días.

El calculo se debe efectuar una vez se haya seleccionado la fecha de nacimiento.

E intentado con DatedIf, pero me pone un (1) año más a la edad de la persona, para el ejemplo, esta sería la edad correcta de la persona:

Para establecerlo, he usado la función =SIFECHA(F9;HOY();"Y"), SIFECHA(F9;HOY();"YM"), SIFECHA(F9;HOY();"MD").

Necesito lograr exactamente lo mismo, pero en VBA de Excel, en un formulario y la fecha de nacimiento, debe ser seleccionada de un DTPicker (DTPicker1).

Agradezco desde ya su amable atanción y por ende su valiosa colaboración.

1 Respuesta

Respuesta
1

Te recomiendo lo siguiente:

En la Columna Z o en una columna que no ocupes.

Pon en la celda Z2 esta fórmula

=SIFECHA(Z1;HOY();"y")

En la Z3:

=SIFECHA(Z1;HOY();"ym")

En la Z4

=SIFECHA(Z1;HOY();"md")

Ahora en el formulario pon esto:

Private Sub DTPicker1_Change()
    [Z1] = DTPicker1
    TextBox1 = [Z2]
    TextBox2 = [Z3]
    TextBox3 = [Z4]
End Sub

Saludos.Dante Amor

Si es lo que necesitas.

¡Gracias! 

Hola Dante, hice tal cual me has indicado y este es el resultado que obtengo.

Lo otro que sucede, es que no se recalcula cuando cambio de fecha.

Pon lo siguiente en tu formulario, revisa si ya tienes un evento DTPicker1_Change, cámbialo por esto:

Private Sub DTPicker1_Change()
    [Z1] = DTPicker1.Value
    DoEvents
    TextBox1 = [Z2]
    TextBox2 = [Z3]
    TextBox3 = [Z4]
End Sub

¡Gracias! Muy amable Dante, me hiciste dar cuenta de un pequeño error, tenia DTPicker5, en vez de DTPicker1.

De todas formas, me sirvió haberte escrito de nuevo para que me ayudaras con la línea de DoEvents. De nuevo muy amable.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas