Visual Basic - ¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Giovanny (1 intervención) el 13/11/2014 16:59:28
Deseo calcular la edad desde la fecha de nacimiento automáticamente, tengo 2 TextBox, en una colocar la fecha y en el otro que me salga automáticamente la edad.

27b09f43a6b64a0d8059b05083eecd19_A
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 147
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Juan Gilberto (323 intervenciones) el 14/11/2014 19:23:19
Utiliza la funcion DateDiff

1
2
3
4
5
Dim Edad As Integer
 
Edad = DateDiff( "yyyy", CDate(Text1.Text), Date)
 
Text2.Text = Format(Edad)

Estoy suponiendo que el textbox donde tienes la fecha de nacimiento es el Text1 y que la respuesta la quieres en Text2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Roberto F. (11 intervenciones) el 14/11/2014 19:33:34
Hay que tener cuidado con esta formula, ya que por ejemplo:

DateDiff("yyyy", "01/12/2000", "14/11/2014")

devuelve 14 cuando realmente hsata el día 1 de diciembre no cumple los 14 años, es decir... solo tiene aún 13
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por amb (1 intervención) el 25/04/2019 18:14:24
Yo lo resolvi de esta manera, al modo antiguo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Private Sub CommandButton1_Click()
Dim evaluacionanos As Integer
Dim evaluacionmes As Integer
Dim evaluaciondias As Integer
Dim actual As Date
Dim nacimiento As Date
 
 
Dim nacimientoanos As Integer
Dim nacimientomes As Integer
Dim nacimientodias As Integer
actual = tbxactual
nacimiento = txbnacimiento
 evaluacionanos = Year(actual)
  evaluacionmes = Month(actual)
 evaluaciondias = Day(actual)
 nacimientoanos = Year(nacimiento)
 nacimientomes = Month(nacimiento)
 nacimientodias = Day(nacimiento)
 
If evaluaciondias < nacimientodias Then
    evaluaciondias1 = evaluaciondias + 30
    Dias = evaluaciondias1 - nacimientodias
 
    evaluacionmes = evaluacionmes - 1
 
       'TextBox9 = Dias
        Else
   Dias = evaluaciondias - nacimientodias
 
   'TextBox9 = Dias
      End If
 
  If evaluacionmes < nacimientomes Then
    evaluacionmes1 = evaluacionmes + 12
    mes = evaluacionmes1 - nacimientomes
    evaluacionanos = evaluacionanos - 1
    anos = evaluacionanos - nacimientoanos
   'TextBox8 = mes
  'TextBox7 = anos
 
       Else
       mes = evaluacionmes - nacimientomes
       anos = evaluacionanos - nacimientoanos
 
  'TextBox8 = mes
  'TextBox7 = anos
    End If
    TextBox10 = anos & " años, " & mes & " mes(es) y " & Dias & " días"
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Juanjo Carballo (1 intervención) el 22/06/2020 10:57:05
Hola...
Vine por aquí para no pensar... y al final acabé pensando...
Comparto función que creo que me ha funcionado, por si alguien viniera por aquí en un futuro.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Function Edad() As Integer
 
    Dim Nacimiento As Date
    Dim Hoy As Date
    Dim Anos As Double
    Nacimiento = ThisWorkbook.Names("FechaNacimiento").RefersToRange.Value 'Cojo fecha de un rango con nombre
    Hoy = Format(Now, "dd/mm/yyyy")
 
    Anos = DateDiff("yyyy", Nacimiento, Hoy) 'Calculo de años sin tener en cuenta si se han cumplido o no.
 
    'Para verificar, le sumo los años a la fecha de nacimiento
    EdadHoy = DateAdd("yyyy", Anos, Nacimiento)
    'En caso de que el calculo anterior sea mayor que hoy, restamos uno.
    If EdadHoy > Hoy Then
        Edad = Anos - 1
    Else
        Edad = Anos
    End If
 
 
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por jose Zavala (1 intervención) el 22/03/2023 22:23:01
Muchas Gracias era la repuesta que buscaba me salvaste el día, gracias por compartir tus conocimientos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Roberto F. (11 intervenciones) el 14/11/2014 19:29:11
Puedes usar dos cosas:

Si es una formula en excel:

1
= SIFECHA ( celda ; AHORA() ; "y" )

Pero si es directamente en VBA:

1
2
3
4
5
6
7
8
9
Function Edad(FechaNac As Date)
Dim Años As Integer
 
    Años = Year(Now) - Year(FechaNac)
    If Month(Now) < Month(FechaNac) Then Años = Años - 1 'todavía no ha llegado el mes de su cumple
    If Month(Now) = Month(FechaNac) And Day(Now) < Day(FechaNac) Then Años = Años - 1 'es el mes pero no ha llegado el día de su cumple
 
    Edad = Años
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 58
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por JoaoM (79 intervenciones) el 15/11/2014 18:54:49
Tengo esta formula. No es mia si no que la tengo guardada desde hace tiempo que me la pasaron
Formula en I3
=SIFECHA(G3;H3;"Y")&" "&"Años,"&" "&SIFECHA(G3;H3;"YM")&" "&"Meses y"&" "&SIFECHA(G3;H3;"MD")&" "&"Dias"

en G3 fecha de nacimiento
en H3 fecha actual =HOY()
-------------------------------
Por celda

En G4 H4 y I4

En G4 =SIFECHA(G3;H3;"Y")&" años, "
En H4 =SIFECHA(G3;H3;"ym")&" meses y "
y
En I4 =SIFECHA(G3;H3;"md")&" días"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 58
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por JoaoM (79 intervenciones) el 15/11/2014 18:59:05
Si no es mollestia Roberto,podrias pasar la macro en VBA Excel completa? me interesa y yo con macros, nanay nanay, solo lo basico de basico.

Solo tengo que crear un form con 2 TextBox?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Roberto F. (11 intervenciones) el 16/11/2014 03:59:18
Hola:

¿completa?

Bueno...simplemente añades la función que he puesto en un módulo

y luego la puedes usar sin mas..

Text2.Text = Edad(CDate(Text1.Text)) & " años."


Lo suyo seria ponerle chequeos....
1
2
3
4
5
If isdate(Text1.text) then
    Text2.Text = Edad(CDate(Text1.Text)) & " años."
else
    Text2.Text = ""
end if


Supongo que te refieres a esto... o a obtener los años, meses y días?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 58
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por JoaoM (79 intervenciones) el 16/11/2014 04:33:34
Si, es decir,

La macro que obtenga tal como esta formula
1
=SIFECHA(G3;H3;"Y")&" "&"Años,"&" "&SIFECHA(G3;H3;"YM")&" "&"Meses y"&" "&SIFECHA(G3;H3;"MD")&" "&"Dias"

pero claro y repito, en macro y no formula

¿Se puede?

Tu macro presenta años pero no dias, en mi caso presenta 66 años y los meses y dias?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Roberto F. (11 intervenciones) el 17/11/2014 01:58:25
¿Se puede......?

Yo solía decir en clase que todo se puede...

Te podría servir esta función...hecha de otra manera.

Partiendo de la fecha de nacimiento, le va sumando los años completos que ha cumplido, despues los meses y finalmente los dias.

Function Edad(FechaNac As Date)
Dim Años As Integer
Dim Meses As Integer
Dim Dias As Integer
Dim FechaCalculo As Date

FechaCalculo = FechaNac

If FechaNac > Date Then
Edad = "Error. Fecha futura"
Exit Function
End If

Do While DateAdd("YYYY", 1, FechaCalculo) <= Date 'comprobamos los años que ha cumplido
Años = Años + 1
FechaCalculo = DateAdd("YYYY", 1, FechaCalculo) 'añadiendo años a la fecha de nacimiento
Loop

Do While DateAdd("m", 1, FechaCalculo) <= Date 'comprobamos los meses que ha cumplido
Meses = Meses + 1
FechaCalculo = DateAdd("m", 1, FechaCalculo) 'añadiendo meses
Loop

Do While DateAdd("d", 1, FechaCalculo) <= Date 'finalmente comprobamos los dias que ha cumplido
Dias = Dias + 1
FechaCalculo = DateAdd("d", 1, FechaCalculo)
Loop

Edad = Años & " Años, " & Meses & " meses y " & Dias & " dias."

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 58
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por JoaoM (79 intervenciones) el 17/11/2014 02:29:43
Gracias Roberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por MARCIA ESCARES (2 intervenciones) el 23/08/2017 18:19:08
MUCHAS GRACIAS, ME SIRVIO MUCHISIMO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Alextzn (1 intervención) el 10/09/2019 19:27:42
Esta funcion calcula correctamente, gracias la usare.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Calcular la edad desde la fecha de nacimiento? - Visual Basic EXCEL?

Publicado por Emmanuel (1 intervención) el 28/04/2017 00:08:02
TIENES QUE COLOCAR TRES CAJA DE TEXTO


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub frmCaptura_Activated(sender As Object, e As EventArgs) Handles Me.Activated
'////////////////////////DECLARO LA VARIABLES
    Dim fechaNacimiento As DateTime = frmbusqueda.txt11Fnac.Text
    Dim fechacorte As DateTime = frmParametros.txt2.Text
    Dim qtydaystotales As Long
    Dim ts As TimeSpan = fechacorte - fechaNacimiento
    Dim qtyYear, qtyMonth, qtyDays As Integer
'///////////////// REALIZO EL CALCULO EN AÑOS, MESES Y DIAS      
    qtydaystotales = CInt(ts.Days)
    qtyYear = CInt(qtydaystotales / 365) '///////////////////////////// SE CALCULA EN AÑOS
    qtyMonth = CInt((qtydaystotales - (qtyYear * 365)) / 30)'///////////////SE CALCULA EN MESES 
    qtyDays = qtydaystotales - ((qtyYear * 365) + (qtyMonth * 30))'/////////////////// SE CALCULA EN DIAS 
 
'//////////////////////// MUESTRO LOS VALORES EN LAS CAJAS DE TEXTBOX AGREGADOS
    txtAnio.Text = qtyYear
    txtMes.Text = qtyMonth
    txtDias.Text = qtyDays
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar