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

Conception Discussion :

Extraction de valeurs entre 2 dates et par année


Sujet :

Conception

  1. #1
    Membre habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    août 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : août 2005
    Messages : 163
    Points : 150
    Points
    150
    Par défaut Extraction de valeurs entre 2 dates et par année
    Bonjour à toutes et tous

    Au boulot, nous devons recenser le nombre de jour dans l'année 2020 d'arrêt (maladie, accident travail)
    on note la date de début de l'arrêt et la fin de l'arrêt et on doit calculer le nombre de jour d'absence, mais seulement sur 2020( par exemple).

    par exemple sil y a un arrêt depuis le 31/12/2019 au 02/01/20 = nombre de jour arrêt en 2020 = 2
    si arrêt du 28/12/2020 au 03/01/2021 = nombre de jour arrêt = 4
    et si arrêt du 28/12/2019 au 03/02/2021 = nombre de jour arrêt = 366 (seulement l'année 2020)

    J'ai tester les Fonctions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =ANNEE() pour extraire l'année de la date de debut et de fin
    =DATEDIF(DateD;DateF;"D")
    je n'arrive pas à trouver une formule de calcul sur excel pour appliquer ses 3 conditions.

    Pouvez vous m'aider

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    6 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 6 151
    Points : 15 179
    Points
    15 179
    Billets dans le blog
    42
    Par défaut
    Citation Envoyé par gegila Voir le message
    Si le VBA vous est permis, vous pourriez tester ce genre de fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Function NbJours(ByVal AnneeReference As Integer, ByVal DateDebut As Date, ByVal DateFin As Date) As Integer
     
    Dim DateAControler As Date
     
        NbJours = 0
        For DateAControler = DateDebut To DateFin
            If Year(DateAControler) = AnneeReference Then NbJours = NbJours + 1
        Next DateAControler
     
    End Function
    Nom : Capture.JPG
Affichages : 42
Taille : 26,2 Ko
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Membre habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    août 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : août 2005
    Messages : 163
    Points : 150
    Points
    150
    Par défaut
    Merci beaucoup pour ta réponse

    Mais on ne m'autorise pas le VBA

    j'ai essayé cela

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ET(ANNEE(A6)=2020;ANNEE(B6)=2020);DATEDIF(A6;B6;"D"))

    Mais cela marche que si l'on a date de Debut et de fin dans la même année !

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    7 394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 7 394
    Points : 14 087
    Points
    14 087
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ANNEE(DateF)>ANNEE(DateD);DateF-DATE(ANNEE(DateF);1;1);DateF-DateD)+1
    datedif est inutile pour des jours
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    août 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : août 2005
    Messages : 163
    Points : 150
    Points
    150
    Par défaut
    Merci Chris

    Si j'applique ta formule dans ce cas
    Date_D = 01/01/2018
    Date_Fin =28/12/2021

    J'obtiens 362 jours alors que je devrai avoir 366 sauf erreur de ma part

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    7 394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 7 394
    Points : 14 087
    Points
    14 087
    Par défaut
    RE

    Je n'avais pas vu que tu avais des dates sur plusieurs années et pas seulement fin 2019
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MIN(DateF;DATE(2020;12;31))-MAX(DateD;DATE(2020;1;1))+1
    2020 peut être remplacé par une référence à une cellule pour qu'elle fonctionne pour d'autres années
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 20/05/2015, 17h15
  2. [XL-2000] VBA pour sommer des valeures entre deux dates (nombreuses données)
    Par maxhor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/04/2014, 17h30
  3. [VxiR2] Nombre de jours entre 2 dates, ventilé par mois
    Par adrien.marlinge dans le forum Deski
    Réponses: 2
    Dernier message: 20/02/2013, 12h20
  4. additionner des valeurs entre 2 dates
    Par mgrizzly dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/04/2010, 16h38
  5. valeur entre deux dates
    Par amazircool dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/04/2008, 08h39

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