Jump to content
Sign in to follow this  
viejo

calcular edad segun fecha de nacimiento

Recommended Posts

Hola estimados foristas, tengo una duda y quiero planteárselas; me gustaría que me ayudaran a crear un programa que me pueda calcular la edad de una persona apartir de su fecha de nacimiento tomando en cuenta el dia y el mes en que haya nacido con referencia a la fecha actual. Por ejemplo si si tengo la fecha de nacimiento 12/DIC/1979 entonces la edad serian 33 años pero si nació el 01/ENE/1979 entonces la edad seria 34. Espero haberme explicado. Dejo archivo muestra

calcularedadsegunfecha.xls

Share this post


Link to post
Share on other sites

Hola Armando Montes te agradezco mucho pero ese link no tiene que ver con macros ¿verdad?, voy a intentar hacer algún ejemplo de los que propone tu link y veré si lo ajusto a la grabadora de macros pero la verdad no creo que sea lo que quiero, pero aun así te agradezco mi estimado.

Share this post


Link to post
Share on other sites

hola armando montes me pareció interesante tu aportación la verdad no conocía tantas formulas para las fechas, pero me gustaria nos pudieramos enfocar un poco mas a vba para poder entonces asi manipular a mi antojo esta situacion, ¿tendras algo para ayudarme al respecto?

Share this post


Link to post
Share on other sites

perdona mi estimado, a la mejor no me di a entender yo necesito hacerlo mediante el formulario, es decir, usar un textbox, label, msgbox etc.

- - - - - Mensaje combinado - - - - -

perdona mi estimado, a la mejor no me di a entender yo necesito hacerlo mediante el formulario, es decir, usar un textbox, label, msgbox etc.

Share this post


Link to post
Share on other sites

perdon por la tardanza jaimedavid27 la verdad no me di cuenta cuando posteaste, me doy cuenta que la aportacion que me envias es casi igual a la mia, el programa calcula el año actual - el año de nacimiento = edad, pero falta la parte de los meses que es la parte que no se como hacer dado que una persona no tiene la misma edad si nació el 01/ene/1979 a una persona que nació el 31/dic/1979 ya que uno tendrá 33 y el otro 34, ¿como lo podre lograr, alguna idea?

Share this post


Link to post
Share on other sites

JaimeDavid27 te soy sincero no le entendí a tu codigo jeje, tambien sucede que hay un error con los años, estuve tratando de hacerlo y logre algo como esto; aunque dejame decirte que me gusto la aportacion:

pero no logro hacer que me muestre los meses restantes y mucho menos los dias jeje, nada mas como nota no hagas caso de las formulas que estan en la hoja esas fueron parte de mi entendimiento para lograr el codigo de vba, dime si puedes ayudarme a que me muestre los meses y dias, ya logre que se pongan los años intenta 01/01/1979 y con 31/12/1979

Calcular edad segun fecha de nacimiento.xls

Share this post


Link to post
Share on other sites

Hola:

A ver que tal funciona el archivo adjunto con el formulario.

Saludos

PD:

Para el que lo prefiera como UDF:

Function [B]CalcularEdad[/B](ByVal Fecha As Variant) As Integer
[COLOR=#008000]'--Control de fechas[/COLOR]
If IsDate(FechaNacimiento) = False Then Exit Function
FechaNacimiento = CDate(FechaNacimiento)
If FechaNacimiento > Date Then Exit Function
[COLOR=#008000]'--Cumple en los próximos meses[/COLOR]
If Month(FechaNacimiento) > Month(Date) Then
CalcularEdad = Year(Date) - Year(FechaNacimiento) - 1
Exit Function
End If
[COLOR=#008000]'--Su cumpleaños ya ha pasado[/COLOR]
If Month(FechaNacimiento) < Month(Date) Then
CalcularEdad = Year(Date) - Year(FechaNacimiento)
Exit Function
End If
[COLOR=#008000]'--Cumple en los próximos días[/COLOR]
If Day(FechaNacimiento) > Day(Date) Then
CalcularEdad = Year(Date) - Year(FechaNacimiento) - 1
Exit Function
End If
[COLOR=#008000]'--Su cumpleaños ha sido recientemente, o incluso, puede que sea hoy[/COLOR]
CalcularEdad = Year(Date) - Year(FechaNacimiento)
End Function
[/CODE]

o su versión mas corta:

[CODE]Function [B]CalcularEdad[/B](ByVal Fecha As Variant) As Integer
FechaNacimiento = Fecha
[COLOR=#008000]'--Control de fechas[/COLOR]
If IsDate(FechaNacimiento) = False Then Exit Function
FechaNacimiento = CDate(FechaNacimiento)
If FechaNacimiento > Date Then Exit Function
[COLOR=#008000]'--Edad teórica[/COLOR]
CalcularEdad = Year(Date) - Year(FechaNacimiento)
[COLOR=#008000]'--El cumpleaños está por llegar[/COLOR]
If (Month(FechaNacimiento) > Month(Date)) Or _
(Month(FechaNacimiento) = Month(Date) And _
Day(FechaNacimiento) > Day(Date)) Then CalcularEdad = CalcularEdad - 1
End Function
[/CODE]

o incluso la versión minimalista si sabemos que la fecha de nacimiento es fiable:

[CODE]Function [B]CalcularEdad[/B](ByVal FechaNacimiento As Date) As Integer
CalcularEdad = Year(Date) - Year(FechaNacimiento)
If (Month(FechaNacimiento) > Month(Date)) Or _
(Month(FechaNacimiento) = Month(Date) And _
Day(FechaNacimiento) > Day(Date)) Then CalcularEdad = CalcularEdad - 1
End Function
[/CODE]

Calcular Edad MA.xls

Share this post


Link to post
Share on other sites

JaimeDavid27 me gustó la certeza que tuviste al hacer este pequeño programa y mas desde tu celular eso denota que realmente le metes cabeza a las cosas aun con las circunstancias que pueda haber en el ambiente que te desarrolles. Tu código me sirve mucho, solo falta afinar la parte de validar el textbox para obligar al usuario a meter la fecha de nacimiento correcta; es decir; en formato dd/mm/aaaa y meter un mensaje de error para que al meter una fecha de nacimiento mayor a la fecha actual no se truene el programa, o simplemente marcar con números negativos la fecha jeje, pero bueno creo que eso si lo puedo hacer yo, te agradezco mucho tu aportación me has sacado del hoyo.

- - - - - Mensaje combinado - - - - -

a ver si no te molestas MacroAtonio y denoto que siempre me has sacado del apuro pero esta vez fueron mas certeros que tu cabe mencionar que me gusta la estética que le pusiste a la presentación, me has abierto los ojos con respecto a las UDF te soy sincero no las conocía, y tuve que leer un poquito, pero necesito que también me de los días y los meses con respecto a la edad. Si la persona nació el 15/05/2013 entonces tendría 1 mes con 1 día, lo cual no me lo da, solo lo aclaro para que no haya mal interpretación, ¿seria mucho pedirte también me pueda dar los meses y días? ojala me hagas ese gran favor mi estimado. Saludos

Share this post


Link to post
Share on other sites

mi estimado MacroAntonio eres un "excel-ente" :joyous:, es otra forma de lo que esperaba, aunque los dos me dieron las aportaciones ambos fueron concretos y correctos. Declaro tema solucionado. Mil gracias y saludos

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png