Calculer l'age de la personne a partir de la date de naissance-code VBA

Bonsoir,

Dans une colonne j'ai une liste avec les dates de naissances au format ‘23.04.1980’ et je cherche à créer une nouvelle variable avec l’âge de la personne. Ayant peu de connaissances en vba, s'il vous plaît, est-ce qu'il y a quelqu'un qui peut m'aider avec un code vba?

Merci beaucoup

Salut VBA234 ,

Si tu ajoutes la date d'aujourd'hui à coté de ta date de naissance,tu peux calculer l'âge du capitaine

Imaginons en cellule A1 la date de naissance, et en A2 la date d'aujourdhui, voici un petit bout de code ("yyyy" sert à dire "je veux le résultat en années")

AgeDuCapitaine = DateDiff("yyyy", CDate(Range("A1").Value), CDate(Range("A2").Value))

En espérant que ça t'aidera

Bonjour,

Ou encore :

Age = Year(Range("B1").Value) - Year(Range("A1").Value)

Bonjour,

Une proposition avec une fonction personnalisée.

La date en texte a un format jj.mm.aaaa

Voir fichier joint.

Cdlt.

236vba234.xlsm (23.42 Ko)
Public Function fnAge(strDate As String)
Dim dt As Date, dt2 As Date
Dim tbl As Variant
Dim iYear As Integer, iMonth As Integer, iDay As Integer

    tbl = Split(strDate, ".")
    iYear = tbl(2): iMonth = tbl(1): iDay = tbl(0)
    dt = DateSerial(iYear, iMonth, iDay)
    dt2 = VBA.Now()
    fnAge = DateDiff("yyyy", dt, dt2, vbMonday, vbFirstFourDays)
    If DateAdd("yyyy", fnAge, dt) > Now Then fnAge = fnAge - 1

End Function

Bonjour,

Une proposition avec une fonction personnalisée.

La date en texte a un format jj.mm.aaaa

Voir fichier joint.

Cdlt.

VBA234.xlsm

Public Function fnAge(strDate As String)
Dim dt As Date, dt2 As Date
Dim tbl As Variant
Dim iYear As Integer, iMonth As Integer, iDay As Integer

    tbl = Split(strDate, ".")
    iYear = tbl(2): iMonth = tbl(1): iDay = tbl(0)
    dt = DateSerial(iYear, iMonth, iDay)
    dt2 = VBA.Now()
    fnAge = DateDiff("yyyy", dt, dt2, vbMonday, vbFirstFourDays)
    If DateAdd("yyyy", fnAge, dt) > Now Then fnAge = fnAge - 1

End Function

Merci beaucoup Jean-Eric:)

Re,

C'est ton cadeau de Noël, avec quelques jours de retard.

Et bonne année...

Cdlt.

Bonjour à tous et bonne année...

Je vais en rajouter une (fonction personnalisée) à toutes fins utiles :

Function AGE(dn, Optional aff As String = "a", Optional df)
    Dim d, hui, a%, m%, j%, agr$
    Application.Volatile
    If dn = "" Then GoTo errdate
    On Error Resume Next
    If IsMissing(df) Then
        hui = Date
    Else
        hui = CDate(df)
        If CLng(hui) > 0 And CLng(hui) < 60 Then hui = hui + 1
    End If
    d = CDate(dn)
    If CLng(d) > 0 And CLng(d) < 60 Then d = d + 1
    If hui < d Then GoTo errdate
    On Error GoTo errdate
    a = DateDiff("yyyy", d, hui)
    If DateAdd("yyyy", a, d) > hui Then a = a - 1
    agr = a & IIf(a > 1, " ans", " an")
    If UCase(aff) = "M" Or UCase(aff) = "J" Then
        d = DateAdd("yyyy", a, d)
        m = DateDiff("m", d, hui)
        If DateAdd("m", m, d) > hui Then m = m - 1
        agr = agr & " " & m & " m."
        If UCase(aff) = "J" Then
            d = DateAdd("m", m, d)
            j = DateDiff("y", d, hui)
            agr = agr & " " & j & " j."
        End If
    End If
    AGE = agr
    Exit Function
errdate:
    AGE = CVErr(xlErrNA)
End Function

Cette fonction renvoie l'âge à partir de la date de naissance (en 1er argument), exprimé sous forme de chaîne en années, années et mois, années et mois et jours (selon 2e argument : "a" ou omis, "m", "j"), âge calculé à la date du jour ou si une date est fournie en 3e argument, à cette date.

En outre, la fonction corrige l'erreur d'Excel du 1er janvier 1900 à la veille du 1er mars 1900, et fonctionne pour les dates antérieures à 1900.

Elle ne prend cependant pas en compte le passage du calendrier Julien au calendrier Grégorien, variable selon les pays et régions... (Ce sera pour une autre version quand je trouverai le temps... )

Cordialement.

Rechercher des sujets similaires à "calculer age personne partir date naissance code vba"