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

Access Discussion :

mois entre deux dates avec critères


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2019
    Messages : 108
    Points : 78
    Points
    78
    Par défaut mois entre deux dates avec critères
    Bonjour,
    Je voudrais trouver le nombre de mois entre deux date mais pour un intervalle défini.
    Par exemple, combien de mois pour l'année 2018 entre 05/06/2015 et 10/10/2019. Mais j'ai besoin d'une formule qui prenne en compte tous les cas de figure :

    1/05/2015 - 1/06/2016 = 0 mois
    1/05/2015 -30/05/2018 = 5 mois
    01/05/2018 - 30/07/2018 = 3 mois
    1/05/2015 -30/10/2019 = 12 mois
    1/10/2018 - 1/04/2019 = 3 mois

    j'ai essayé avec des formules IIF en essayant de prendre les différents cas de figures, avec les critères dans le mode création, avec série date et ajdate et ça fait deux jours que je penche dessus, mais je ne trouve pas du tout

    Quelqu'un pourrait m'aider ?

    Merci beaucoup

    Maxime

  2. #2
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 133
    Points : 83 970
    Points
    83 970
    Billets dans le blog
    15
    Par défaut
    Salut,

    Ce fil traite votre problématique je pense : https://www.developpez.net/forums/d1...entre-2-dates/


    Bonne lecture
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  3. #3
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2019
    Messages : 108
    Points : 78
    Points
    78
    Par défaut
    merci beaucoup

  4. #4
    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 559
    Points
    6 559
    Par défaut
    Salut
    Et pour info, tous vos cas de figure présentent un résultat faux ! volontaire ?
    Et pour terminer la série de fonctions datedif()
    "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

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Salut
    Et pour info, tous vos cas de figure présentent un résultat faux ! volontaire ?
    Et pour terminer la série de fonctions datedif()
    Lequel est faux ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 97
    Points
    97
    Par défaut mois entre deux dates avec critères
    Bonjour à tous,

    Ci joint une petite base de données avec un exemple de calcul avec une requête.
    On pourrait faire une fonction en VBA pour mettre en paramètre l'année.
    En espérant répondre à ta question.
    Cordialement
    Riton
    Fichiers attachés Fichiers attachés

  7. #7
    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 559
    Points
    6 559
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Lequel est faux ?
    Bonjour Claude
    Euh... désolé ! erreur de ma part !
    "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

  8. #8
    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 559
    Points
    6 559
    Par défaut
    Un début de solution
    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
    Public Function NbreMois(datedeb As Date, datefin As Date, inputyear As Integer) As Integer
    Dim nbmois As Integer
     
    If Year(datedeb) < inputyear And Year(datefin) < inputyear Then
        nbmois = 0
    ElseIf Year(datedeb) = inputyear And Year(datefin) = inputyear Then
        nbmois = DateDiff("m", datedeb, datefin) + 1
    ElseIf inputyear > Year(datedeb) And inputyear < Year(datefin) Then
        nbmois = DateDiff("m", DateSerial(inputyear, 1, 1), DateSerial(inputyear, 12, 31)) + 1
    ElseIf inputyear > Year(datedeb) And inputyear = Year(datefin) Then
        nbmois = DateDiff("m", DateSerial(inputyear, 1, 1), datefin) + 1
    ElseIf inputyear = Year(datedeb) And inputyear < Year(datefin) Then
        nbmois = DateDiff("m", datedeb, DateSerial(inputyear, 12, 31)) + 1
    End If
    NbreMois = nbmois
    End Function
    "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

  9. #9
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2019
    Messages : 108
    Points : 78
    Points
    78
    Par défaut
    Wow super, merci énormément pour vos réponses, ça m'aide beaucoup !!

  10. #10
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour à tous,

    Dans le même ordre d'idée qu'hyperion13 juste une approche différente, dans un module:
    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
    18
    19
    Public Function fuNbreMois(daDebut As Date, daFin As Date, loAn As Long) As Long
    On Error GoTo gestion_err
     
        Dim i As Long
     
        Do While daDebut < daFin
            If Year(daFin) < loAn Or Year(daDebut) > loAn Then: Exit Do
            If Year(daDebut) = loAn Then: i = i + 1
            daDebut = DateAdd("m", 1, daDebut)
        Loop
     
        fuNbreMois = i
     
    Sortie:
    Exit Function
    gestion_err:
        MsgBox Err.Description & Chr(13) & "Erreur #: " & Err.Number
        Resume Sortie
    End Function
    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  11. #11
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2019
    Messages : 108
    Points : 78
    Points
    78
    Par défaut
    Un tout tout grand merci !!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/08/2016, 21h25
  2. Réponses: 1
    Dernier message: 05/10/2006, 04h20
  3. Nombre de mois entre deux dates
    Par boulaxx dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 14/09/2006, 15h22
  4. [Dates] Les mois entre deux dates
    Par kagura dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2006, 11h38
  5. comment obtenir l’intervalle de mois entre deux date
    Par looc 6699 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/02/2005, 11h08

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