Microsoft 365 Date de naissance

  • Initiateur de la discussion Initiateur de la discussion Scorpio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Scorpio

XLDnaute Impliqué
Bonjour le Forum,
Dans ce classeur, j'ai une formule ancienne commençant par =DateDif,
Mais ce DateDif sauf erreur, n'existe plus, mais alors, par quelle formule je pourrais la remplacer ??
Merci de votre aide
Scorpio à ++++
 

Pièces jointes

en effet sur 2013 elle n'est plus proposée dans les fonctions dates
j'avais pas remarqué vu que j'utilise ma fonction perso
sinon ma fonction perso fonctionne en formule ou en VBA
VB:
'Formule:"=Datediff_AMJ(A2;B2)"
Function Datediff_AMJ$(ByVal dat1, Optional ByVal dat2 = 0)
    Dim a%, m%, j%, dtemp As Date, Erreur$
    If dat2 = 0 Then dat2 = Date
    Erreur = IIf(Not IsDate(dat1), "(1)", ""): Erreur = Erreur & IIf(Not IsDate(dat2), "(2)", ""): Erreur = IIf(Erreur <> "", "Invalid Argmt(" & Erreur & ")", "")
    If Erreur <> "" Then Datediff_AMJ = Erreur: Exit Function
    dat1 = CDate(dat1): dat2 = CDate(dat2)
    If dat1 > dat2 Then dtemp = dat1: dat1 = dat2: dat2 = dtemp
    a = Evaluate("DATEDIF(" & CDbl(dat1) & "," & CDbl(dat2) & ",""y"")")
    m = Evaluate("DATEDIF(" & CDbl(dat1) & "," & CDbl(dat2) & ",""ym"")")
    j = Abs(DateSerial(Year(dat1) + a, Month(dat1) + m, Day(dat1)) - dat2)
    Datediff_AMJ = RTrim(IIf(a, a & " an" & IIf(a = 1, " ", "s "), "") & IIf(m, m & " mois ", "") & IIf(j, j & " jour" & IIf(j = 1, "", "s"), ""))
End Function

Sub test()
    MsgBox Datediff_AMJ("02/02/2020", "25/01/2017")
    MsgBox Datediff_AMJ("25/01/2017", "02/02/2020")
    MsgBox Datediff_AMJ("04/03/1970")
    MsgBox Datediff_AMJ("toto", "titi")
    MsgBox Datediff_AMJ("25/04/2016", "titi")
End Sub
en formule c''est simple
=datedif_AMJ(A1) ' pour un anniversaire
ou différence entre deux dates
=datedif_AMJ(A1;B1)
 
Le fil

As tu regardé et lus les liens ?

Autrement la fonction excel fonctionne très bien....
1620918892955.png

@Phil69970
 
ben non forcement tu cherche a faire des calculs avec une donnée calendaire
il faut bien discéquer la date j m a pour pouvoir faire les calculs
il y a aussi celle de @job75 qui fonctionne très bien aussi moins optionelle mais quand même
VB:
'Auteur @Job75 sur excelsdownloads'
Function AnsMoisJours$(dat1, dat2)
If Not IsDate(dat1) Or Not IsDate(dat2) Then Exit Function
If dat2 < dat1 Then Exit Function
Dim a%, m%, test As Boolean, j%
a = Evaluate("DATEDIF(" & CDbl(dat1) & "," & CDbl(dat2) & ",""y"")")
m = Evaluate("DATEDIF(" & CDbl(dat1) & "," & CDbl(dat2) & ",""ym"")")
test = dat2 < DateSerial(Year(dat2), Month(dat2), Day(dat1)) 'True = -1
j = dat2 - DateSerial(Year(dat2), Month(dat2) + test, Day(dat1))
AnsMoisJours = RTrim(IIf(a, a & " an" & IIf(a = 1, " ", "s "), "") & IIf(m, m & " mois ", "") & IIf(j, j & " jour" & IIf(j = 1, "", "s"), ""))
End Function
pour la formule c'est pareil sauf le nom de la fonction
 
Bonjour @JNP
et le reste ??????????????
il est question ici de la différence en année mois et jours
Bonjour @patricktoulon,
Les mois seront donnés par "M" comme Month, les jours par "D" comme Day... Je constatais surtout que cette formule fonctionnait bien toujours avec les bons arguments.
=DATEDIF(DATEVAL("01/01/1900");MAINTENANT();"Y")&" ans ou "&DATEDIF(DATEVAL("01/01/1900");MAINTENANT();"M")&" mois ou "&DATEDIF(DATEVAL("01/01/1900");MAINTENANT();"D")&" jours."
donnera les 3, mais je ne vois pas l'intérêt... 🙂
 
Sur 365, les "anciennes formules" fonctionnent très bien.
Salut mapomme,
Effectivement cette formule fonctionne sur Office 365
=DATEDIF(B4;AUJOURDHUI();"y") & " an" & SI(DATEDIF(B4;AUJOURDHUI();"y")>1;"s";"") &" " & DATEDIF(B4;AUJOURDHUI();"ym") & " mois" & " " & DATEDIF(B4;AUJOURDHUI();"md") & " jour" & SI(DATEDIF(B4;AUJOURDHUI();"md")>1;"s";"")
Erreur corrigée. 😉
A bientôt
Scorpio
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
172
Réponses
3
Affichages
152
Réponses
6
Affichages
284
Réponses
16
Affichages
1 K
Retour