Age année et mois text box

romanza Messages postés 263 Statut Membre -  
romanza Messages postés 263 Statut Membre -
Bonjour,

Dans un formulaire je calcule l'âge d'un adulte à partir d'une textbox où est indiquée la date de naissance. J'utilise le code que j'ai récupéré tout fait :
Private Sub Néle_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If CDate(Néle.Text) Then Age.Text = Format(Date - CDate(Néle), "yy") & " ans "
End Sub


Cependant je souhaiterais rajouter les mois dans l'âge.
Pouvez-vous m'écrire le code correspondant.

Merci

3 réponses

  1. romanza Messages postés 263 Statut Membre 2
     
    Merci pour cette configuration très complète mais je souhaite rester avec une textbox où l'on indique la date de naissance sous format jj/mm/aaaa et la textbox dans laquelle apparaitra l'âge en année et en mois
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Adaptez le code a votre utilisation!!!!
      0
  2. romanza Messages postés 263 Statut Membre 2
     
    Je maîtrise mal le vba.
    Dans le code que je propose n'ya t'il pas une légère modification à apporter pour obtenir les mois?
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Je maîtrise mal le vba. Ben oui, mais faut faire l'effort
      un exemple:
      Private Sub TextBox1_Change()
      If IsDate(TextBox1) Then
      TextBox2 = Calculage(CDate(TextBox1), Date)
      End If
      End Sub

      Function Calculage(DateN As String, DateCS As String) As String
      If IsDate(DateN) = False Then Exit Function
      If IsDate(DateCS) = False Then Exit Function
      Dim jN1, jC1, mN1, mC1, aN1, aC1 As Integer
      Dim Jage, Mage, Aage As Integer
      Dim Jdif As Integer
      jN1 = Day(DateN)
      jC1 = Day(DateCS)
      mN1 = Month(DateN)
      mC1 = Month(DateCS)
      aN1 = Year(DateN)
      aC1 = Year(DateCS)
      If aC1 < aN1 Then Exit Function
      If aC1 = aN1 And mC1 < mN1 Then Exit Function
      If aC1 = aN1 And mC1 = mN1 And jC1 < jN1 Then Exit Function
      If aC1 = aN1 And mC1 = mN1 And jC1 = jN1 Then
      Mage = 0
      Jage = 0
      Aage = 0
      GoTo caline1
      End If
      '
      ' Permet de savoir le nombre de jours du mois (fevrier inclus)
      Dim sdt1 As Date
      Dim sdt2 As Date
      sdt1 = DateValue("1" & "/" & mN1 & "/" & aN1)
      sdt2 = DateValue("1" & "/" & mN1 + 1 & "/" & aN1)
      Jdif = DateDiff("d", sdt1, sdt2)
      '
      '
      If jC1 < jN1 Then
      If mC1 > mN1 Then
      Mage = (mC1 - 1) - mN1
      'A vérifier : Jage = (jC1 + Jdif) - jN1 +1
      Aage = aC1 - aN1
      GoTo caline1
      End If

      If mC1 = mN1 Then
      Aage = aC1 - 1 - aN1
      Mage = (mC1 + 11) - mN1
      Jage = (jC1 + Jdif) - jN1
      GoTo caline1
      End If

      If mC1 < mN1 Then
      Mage = (mC1 + 11) - mN1
      Jage = (jC1 + Jdif) - jN1
      Aage = aC1 - 1 - aN1
      GoTo caline1
      End If

      End If
      If jC1 >= jN1 Then
      If mC1 > mN1 Then
      Jage = jC1 - jN1
      Mage = mC1 - mN1
      Aage = aC1 - aN1
      GoTo caline1
      End If

      If mC1 = mN1 Then
      Jage = jC1 - jN1
      Mage = mC1 - mN1
      Aage = aC1 - aN1
      GoTo caline1
      End If

      If mC1 < mN1 Then
      Jage = jC1 - jN1
      Mage = (mC1 + 12) - mN1
      Aage = aC1 - 1 - aN1
      GoTo caline1
      End If
      End If
      caline1:
      Calculage = Aage & " ans et " & Mage & " mois" ' et " & Jage & " jours."
      End Function
      0
      1. romanza Messages postés 263 Statut Membre 2 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour,

        merci à vous, j'ai pu adapter et cela fonctionne.
        Bonne journée
        0