Sou usuário do script abaixo. Ele funciona perfeitamente, só que calcula a idade sempre um ano a menos, gostaria que me ajudassem se possível.
Segue abaixo:
Function CalculaIdade(DataNasc As Variant) As Variant
''Recebe a DataNasc e devolve a Idade em Anos
On Error GoTo Idade_Err
''Evita o erro de data não preenchida
If IsNull(DataNasc) Then
CalculaIdade = ""
Exit Function
End If
''Declarando Variáveis
Dim DataHoje As Variant, DiaHoje As Integer
Dim MesNasc As Integer, DiaNasc As Integer
Dim DifAnos As Integer, MesHoje As Integer
''Isola as partes (dia/mês) das duas datas
DiaHoje = DatePart("d", Now)
MesHoje = DatePart("m", Now)
DiaNasc = DatePart("d", DataNasc)
MesNasc = DatePart("m", DataNasc)
''Calcula a diferença de anos
DifAnos = DateDiff("yyyy", DataNasc, Now)
''Verifica dia/mês de nascimento
If MesHoje < MesNasc Then
DifAnos = DifAnos - 1
ElseIf MesHoje = MesNasc Then
If DiaHoje < DiaNasc Then
DifAnos = DifAnos - 1
End If
Else
End If
''Valor final da função
CalculaIdade = DifAnos
Idade_Fim:
Exit Function
Idade_Err:
MsgBox Err.Description
Resume Idade_Fim
End Function
Question
D@rk
Olá boa noite pessoal,
Sou usuário do script abaixo. Ele funciona perfeitamente, só que calcula a idade sempre um ano a menos, gostaria que me ajudassem se possível.
Segue abaixo:
Eu tentei colocar no final da funçãosó que ele funciona pra alguns casos, outros não.
Alguma dica?
Abs,
Edited by D@rkLink to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.