IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Calcul en année / mois / jour [XL-2010]


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Calcul en année / mois / jour
    Bonjour à tous,

    Désolé si la solution a déjà été publiée quelque part, malgré mes nombreux efforts, et quelques tentatives infructueuses de ma part, je n'ai pas trouvée la solution.

    Dans le cadre de mon mémoire de fin d'études, je compile une base de données de patients, avec de nombreuses dates, et donc de nombreux âges (âge a la premiere consultation, âge a l'introduction du traitement, durée de traitement, etc...). Pour les calculer, j'ai trouvé la fonction Calculage parmi différents forums.
    Malheureusement, un bug persiste.
    Quand le jour de la date de naissance est supérieur au jour de référence, la fonction affiche un -320j (ou équivalent).
    Exemple : DDN : 15/12/2000 ; Date d'entrée : 14/10/2010 => 9a 9m -324jo

    Voila le code pour la situation où le jour C est < au jour N

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
        ' 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
                Jage = (jC1 + Jdif) - jN1
                GoTo caline1
            End If
    Si vous avez une solution, je vous en serait infiniment reconnaissant !

    Merci d'avance,

    Adrien

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Swipok Voir le message
    Bonjour,

    Le décompte dans ce vidage d'écran correspond-il à ce que vous devez trouver ? J'ai un doute sur le décompte des mois et des jours.
    Pièce jointe 404608

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Oui c'est ce que j'espère trouver.

    Auriez-vous une solution pour remplacer le code ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Swipok Voir le message
    Je vais regarder, sans garantie. Cela a l'air d'une usine à gaz.

    Sinon, mon vidage d'écran comporte une erreur.
    Soit la date du dernier mois au dessus de la date de naissance dans la colonne D (14/01/2001) ramenée au mois précédent (14/12/2000). Si l'écart entre la date de naissance et cette dernière date = 1, alors le nombre de mois doit être augmenté de 1 et le nombre de jours restant est de 0.

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut,
    il ne serait pas plus simple d'utiliser :
    A2=15/12/2000 et B2=14/10/2010
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C2=SI(B2>A2;DATEDIF(A2;B2;"y")&" an(s) "&DATEDIF(A2;B2;"ym")&" mois et "&DATEDIF(A2;B2;"md")&" jour(s)";DATEDIF(B2;A2;"y")&" an(s) "&DATEDIF(B2;A2;"ym")&" mois et "&DATEDIF(B2;A2;"md")&" jour(s)")
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Salut Hyperion,

    Bravo pour ta formule !
    Pièce jointe 404910

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Salut,
    il ne serait pas plus simple d'utiliser :
    A2=15/12/2000 et B2=14/10/2010
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C2=SI(B2>A2;DATEDIF(A2;B2;"y")&" an(s) "&DATEDIF(A2;B2;"ym")&" mois et "&DATEDIF(A2;B2;"md")&" jour(s)";DATEDIF(B2;A2;"y")&" an(s) "&DATEDIF(B2;A2;"ym")&" mois et "&DATEDIF(B2;A2;"md")&" jour(s)")
    Ça marche super! A un ou deux jours près sur certaines dates mais je n'ai plus l'incohérence du -300 jours !

    Merci beaucoup !!

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Swipok Voir le message
    Quelles dates ? Peux-tu indiquer les cas ?

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Quelles dates ? Peux-tu indiquer les cas ?
    Nom : screen.jpg
Affichages : 219
Taille : 42,5 Ko

    Je crois qu'Excel n'aime pas trop le mois de Décembre...

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Swipok Voir le message
    Voilà ce que je trouve avec mon outil.
    Pièce jointe 405048

    On constate un écart d'une journée avec la méthode d'Hyperion pour le 15/10 et 15/12. Pourtant on trouve le même nombre de jours pour la journée du 15/12 au total (4740 jours).
    Ci-dessous le décompte réalisé pour cette journée.

    Pièce jointe 405052

    Tu es sûr de ta formule pour le 05/01/2016 avec la méthode d'Hyperion ? Je trouve la même chose.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Voila le code utilisé pour la formule du 05/1/2016

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(R21>I21;DATEDIF(I21;R21;"y")&"a "&DATEDIF(I21;R21;"ym")&"m "&DATEDIF(I21;R21;"md")&"j ";DATEDIF(R21;I21;"y")&" a"&DATEDIF(R21;I21;"ym")&" m"&DATEDIF(R21;I21;"md")&" j")
    Nom : screen.jpg
Affichages : 199
Taille : 36,5 Ko

    J'ai simplement supprimer les "années / mois / jours" pour plus de clarté dans mon tableau.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Swipok Voir le message
    • J'ai vérifié, ce n'est pas une inversion du jour et du mois où 05/01/2016 serait interprété comme 01/05/2016.
    • Regarde les triangles verts en haut à gauche de tes cellules. Ce n'est pas normal pour une valeur qui doit être numérique. Efface (comme avec effacer tout, pas seulement le contenu) et copie le contenu de ta formule et colle le dans ta cellule pour voir.

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Il met les petits triangles vert car les autres cellules contiennent mon ancienne formule.

  14. #14
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonjour,
    Ce qui est étonnant c'est que les données 'age_1ers_spt' et '1ere_cs_age' sont correctes. Il y a donc un petit truc qui cloche... Données contaminées par les anciennes formules ???

  15. #15
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Quoi ! la discussion n'est pas encore clôturée ?

    swipok, d'où proviennent vos données ?
    - sont-elles saisies dans la feuille ? Dans ce cas il ne devrait normalement ne pas y avoir de problèmes.
    - sont-elles copiées/collées, sont-elles importées ? Là par contre, il pourrait y avoir des problèmes. Dates au format US, au format Texte, etc.

    Pour ma part, j'ai ouvert un nouveau classeur saisi les 2 dates de référence et j'ai pondu ma formule datedif() que j'utilise assez régulièrement et qui ne m'a à ce jour posée aucun problème.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Swipok Voir le message
    Il met les petits triangles vert car les autres cellules contiennent mon ancienne formule.
    Suite à la remarque QuestVba que je salue, as-tu vraiment effacé ta cellule comme dans le vidage d'écran ?

    Pièce jointe 405163

  17. #17
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Après l'opération d'Éric (qui devrait fonctionner à tous les coups), tu peux nous faire un petit
    Nom : Afficher-formules-dans-excel-2007-2010-2013.png
Affichages : 226
Taille : 23,4 Ko
    pour bien vérifier la formule.

  18. #18
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    J'ai trouvé la solution. J'ai utilisé mon Excel 365 plutot que celui que j'avais au boulot et là pas de problème avec la formule d'hyperion.

    Merci beaucoup à vous d'avoir passé autant de temps à m'aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/04/2008, 11h00
  2. Fonction date année, mois jour?
    Par Portekoi dans le forum DB2
    Réponses: 1
    Dernier message: 11/12/2007, 11h45
  3. Années, mois, jours
    Par pc75 dans le forum Excel
    Réponses: 13
    Dernier message: 03/10/2007, 17h20
  4. date en année/mois/jour
    Par marcusien dans le forum Windows Forms
    Réponses: 6
    Dernier message: 13/03/2007, 14h58
  5. [MySQL] Ecart de temps décomposé en différentes unités (années, mois, jours, etc)
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/03/2006, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo