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 :

Conversion jours calendaires vers jours ouvrés [XL-2010]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 38
    Points
    38
    Par défaut Conversion jours calendaires vers jours ouvrés
    Bonjour,

    Dans le cadre de l'exécution d'un contrat, j'ai essayé d'exploiter la fonction Workday, mais je me trouve bloqué sur une impasse....

    Dans le contrat on me parle de livraison vis a vis d'un milestone par exemple T0+30 jours calendaires.
    Toutefois s'il y a des vacances la date est décalée d'autant de jour de vacances.

    J'ai pensé utiliser la fonction workday(T0,30,Vacances) mais toutefois je viens de me rendre compte que le contrat identifie que les week end (Samedi et dimanche) sont des jours a inclus dans le décompte des 30 jours. Seules les vacances sont à exclure

    A ce que j'en ai compris la fonction Workday exclue les Week end, existe t'il une fonction identique mais n'excluant pas les week end ?

    J'ai pensé trouver une formule permettant de convertir les jours calendaires en jours ouvrés et réinsérer ces jours ouvrés dans le deuxieme parametre de 'Workday', mais ca ne parait pas si simple. Je me suis dis que j'allais coder la formule en VBA mais je me retrouve bloquer. Je ne sais pas trop comment m'y prendre. J'ai du mal a trouver "l'algorithme" associé...

    Voici ce que serait le résultat de la chaine de conversion
    1 jour calendaire = 1 jour ouvré
    2 jour calendaire = 2 jour ouvré
    3 jours calendaires = 3 jours ouvrés
    4 jours calendaires = 4 jours ouvrés
    5 jours calendaires = 5 jours ouvrés
    6 jours calendaires = 5 jours ouvrés
    7 jours calendaires = 5 jours ouvrés
    8 jours calendaires = 6 jours ouvrés
    9 jours calendaires = 7 jours ouvrés
    10 jours calendaires = 8 jours ouvrés
    11 jours calendaires = 9 jours ouvrés
    12 jours calendaires = 10 jours ouvrés
    13 jours calendaires = 10 jours ouvrés
    14 jours calendaires = 10 jours ouvrés

    Je ne sais pas si vous avez déja rencontré tel situation et comment cela a-t'il pu etre résolu.

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, regarde ici

  3. #3
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Si seules les vacances sont à exclure il m'apparaitrait plus simple de prendre les jours calendaires moins la durée des vacances car dans le cas présent tu n'utilises pas la notion de jours ouvrés liée à cette fonction.
    Chris
    PowerQuery existe depuis plus de 13 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é...

  4. #4
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Avec XL-2010 la fonction SERIE.JOUR.OUVRE.INTL (version française), avec en 3ème paramètre la chaîne de caractères "0000000", répond à cette question,
    d'où la formule (version française):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SERIE.JOUR.OUVRE.INTL (T0;30;"0000000";Vacances)
    La fonction anglaise est, je pense, WORKDAY.INTL mais il faut vérifier la syntaxe.
    Cordialement
    Claude

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    les solutions proposées ne menait pas forcément au résultat escompté.
    La difficulté que je voyais était de réinjecter le nombre de jour ouvrés dans une date correspondant à un certains nombre de jour calendaire (vu que je dois
    • prendre les samedi et les dimanche dans le décompte
    • exclure les vacances
    • le résultat de la date calculé doit etre un jour "ouvré"


    Par conséquent, j'ai procédé au calcul voulu en créant une fonction de conversion selon la loi de mon premier message.
    Puis réutiliser la fonction dans la Fonction workday
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =WORKDAY(T0,OpenDaysEquivalent(Lag),HOLIDAYS)
    Voici la formule si ca peut servir a d'autres.
    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
    20
    21
    22
    23
    24
    Function OpenDaysEquivalent(CalendarDays As Long) As Long
    Application.Volatile
    Dim divisor As Long
    Dim temp As Long
        If CalendarDays = 0 Then
            OpenDaysEquivalent = 0
        Else
            divisor = (Abs(CalendarDays) - 1) \ 7
            temp = Abs(CalendarDays) - divisor * 7
            Select Case temp
                Case 1, 2, 3, 4
                    OpenDaysEquivalent = divisor * 5 + temp
                Case 5, 6, 7
                    OpenDaysEquivalent = divisor * 5 + 5
            End Select
            If CalendarDays < 0 Then
                OpenDaysEquivalent = -OpenDaysEquivalent
            Else
                'Nothing
            End If
     
        End If
     
    End Function

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 38
    Points
    38
    Par défaut
    Bon ma fonction ne me donne pas le résultat voulu non plus

    Ca marche mieux avec une formule incluant WORKDAY et WORKDAY.INTL...
    =WORKDAY(WORKDAY.INTL(T0,Lag,"0000000",HOLIDAYS)-1,1,HOLIDAYS)

    Je ne sais pas si c'est propre, mais a réexpliqué dans un ou deux mois ca va pas etre évident...

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

Discussions similaires

  1. Conversion minutes vers Jour:Heure:minute
    Par jaq dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/09/2009, 17h01
  2. Conversion de minute en jours, heures et minute
    Par RobertP dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2008, 15h57
  3. oracle conversion de date et jour julien
    Par corwin dans le forum JDBC
    Réponses: 5
    Dernier message: 23/05/2008, 13h12
  4. Warning ! Mise à jour 2006 vers 2007.1
    Par troumad dans le forum Mandriva / Mageia
    Réponses: 2
    Dernier message: 10/05/2007, 17h01
  5. INFORMIX :conversion "date" to "le jour" :o)
    Par zin_rbt dans le forum Informix
    Réponses: 4
    Dernier message: 15/03/2007, 18h55

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