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

Macros et VBA Excel Discussion :

Calcul de date (Ajout mois "non entier") [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut Calcul de date (Ajout mois "non entier")
    Bonjour,

    Je souhaite avoir une "fonction" Excel me permettant de calculer au plus juste une date.
    Dans certains contrat nous avons ce genre d'information : Date de signature + 1,5 Mois.

    En navigant un peu j'ai pu trouver une formule, pas forcément simple, faisant le travail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    =WORKDAY(DATE(YEAR($D$3);MONTH($D$3)+INT(C5);DAY($D$3)+MOD(C5;1)*30)-1;1)
    $D$3 contient la date de référence
    C5 : l'écart en nombre de mois "pouvant être entier ou non"
    Ca marche bien. Toutefois pour essayer d'améliorer la lisibilité pour l'utilisateur, l'idée m'est venue d'utiliser les formules personnalisée. Et ce en recodant la formule ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function calcMilestoneDate(ReferenceDate As Variant, lag As Variant)
    'Function to caculate a date from a reference Date and associate lag in "month"
    'The month can be a decimal number (1, 2, 3.5,-2...)
    Application.Volatile
     
    With Application.WorksheetFunction
        calcMilestoneDate = .WorkDay(DateSerial(Year(ReferenceDate), Month(ReferenceDate) + Int(lag), Day(ReferenceDate) + (lag Mod 1) * 30) - 1, 1)
    End With
    End Function
    Mais, drame, cela ne marche pas

    La formule Excel (sans vba) me retourne : 19-Oct-2015 + 1,5 mois = 4-Dec-2015
    La formule Excel (avec vba) me retourne : 19-Oct-2015 + 1,5 mois = 19-Nov-2015

    J'ai l'impression que probleme se situe sur :
    Cela ne retourne pas le résulat que j'espérais en tout cas le même résultat que : MOD(C5;1) en formule excel

    Pouvez-vous m'éclairer et me dire où est-ce que j'ai commis une erreur ? et comment y remédier ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    l'expression lag Mod 1 est typée Long par vba, il prend la partie entière de 0.5 soit 0 (edit : bizarrement d'ailleurs il arrondi les 0.5 des nombres pairs à la valeur inférieure, et celle des nombres impairs à la valeur supérieure lors d'une conversion en Long).
    Remplace par Tu as fait ta fonction Volatile inutilement, tu peux ôter ça.
    eric

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    J'ai une question toute bête et espère avoir une réponse intelligente :
    Combien de jours vaut la moitié d'un mois ?
    Ah ... cela dépend du mois ....
    Bien bien ... et combien de jours vaut la moitié d'un nombre impair de jours ? (autre question bête, hein ...)

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    @jacques pas tout a fait selon le mois de la date de depart c'est 45 ou 46 jours pour 1 mois et demie

    voici un exemple j'ai mis en premier résultat ma formule et en second +45 jours
    valable pour x mois de plus + un demie mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    madate = "21/07/2017"
    MsgBox mois_plus(madate, 1.5)
    MsgBox DateSerial(Year(madate), Month(madate), Day(madate) + 45)
    End Sub
     
    Function mois_plus(madate, NBmoisplus) As Date
    Dim Mplus, Jplus
    Mplus = Val(Int(NBmoisplus))
    If Int(NBmoisplus) <> NBmoisplus Then Jplus = 10 + (NBmoisplus - Mplus) * 10
    mois_plus = DateSerial(Year(madate), Month(madate) + Mplus, Day(madate) + Jplus)
    End Function
    on pourrait largement simplifier la formule bien entendu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    du genre comme suit uniquement pour 1mois et demie de plus 
    Sub test2()
    madate = "21/07/2017"
    MsgBox mois_plus2(madate)
    End Sub
     
    Function mois_plus2(madate) As Date
    Jplus = 45
    If Val(Month(madate)) Mod 2 = 0 Then Jplus = 46
    mois_plus2 = DateSerial(Year(madate), Month(madate), Day(madate) + Jplus)
    End Function
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Comme l'a relevé unparia, le mois est une unité à éviter, surtout si elle est calculée en fractions, parce que ce n'est pas une grandeur fixe.
    Il est préférable, professionnellement, de prendre comme unité de référence la semaine, unité qui a une durée bien définie évitant les litiges.
    Par exemple, parler de 6 (ou 7) semaines plutôt que de 1,5 mois.
    Personnellement, je ne connais aucun professionnel qui indique des délais de réalisation, d'approvisionnement, de paiement, etc. en mois.

    Ce qui se rapprocherait le plus de la réalité serait de faire un ration sur la décimale par rapport aux date du mois d'avant et du mois d'après la date visée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function DatePlusMois(Ref As Date, Plus As Mois)
    Dim DateMin As Date, DateMax As Date
     
    DateMin = DateAdd("m", Int(Plus), Ref)
    DateMax = DateAdd("m", 1, DateMin)    
    DatePlusMois = DateMin + ((DateMax - DateMin) * (Plus - Int(Plus))
     
    End Function
    Mais je ne sais pas trop ce que risquent de donner les effets de bord, par exemple si DateMin est un 31 janvier.
    A tester.

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    A Patrick :
    Je crois :
    1) que tu n'as pas compris que je voulais forcer une prise de conscience
    2) que tu y vas fort, avec tes 45 ou 46 jours pour dire 1 mois et demi. Pas toujours exact !
    Et quid de 3 mois et demi en partant du 1er novembre de l'année n à la "mi-février" (c'est quand ? le 14 ou le 15 ?) de l'année n + 1
    Un demi-mois ne saurait tout simplement être une durée temporelle. Le "mois" n'est qu'une notion calendaire.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.
    Pour compléter Unparia et Menhir, si la date de signature se situe en février, on prend la moitié de février, la moitié de mars? Je n'ai jamais vu ce genre de calcul dans le monde professionnel...

    Si on veut faire simple, on considère que tous les mois ont trente jours (comme dans les banques, voir la fonction Jours360() d'Excel), et on ajoute simplement 30 * délai_exprimé_en_fraction_de_mois à la date de signature (par exemple, 30 * 1.5, 30 * 5.5, 30 * 7). Je ne vois vraiment pas l'utilité d'une fonction personnalisée ou d'une formule compliquée pour réaliser cela...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    bonjour menhir
    comme je l'ai dis dateserial fait tres bien le boulot
    car on ajoute le/les mois en untité(1,2,3,4,etc....) et un demie moi = (le nombre de jour du 2 eme mois suivant la date de départ )/2

    autrement dit date +1.5=
    exemple
    ladate 25/04/2017
    plus le mois de mai dans le 2d paramètre de dateserial(+1)
    +le nombre du mois juin /2 dans le 3 eme paramètre de date serial (15)
    bien entendu on arrondi si on est dans un mois de 31 jour on a 15.3333333333 jours ce qui est inutile
    seul fevrier en second mois supplémentaire (pour les 15 jours qui sont 14 en fait ) est a calculer

    j'ai déjà donné plusieurs fois la formule NBjours dans diverses discussions

    du genre
    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
    Sub test3()
    madate = CDate("21/12/2017")
    ' je rajoute 2 mois puis je prend le jour(0) ce qui me donne le nombre de jour du mois suivant
    Nbjourmoissuivant = Day(DateSerial(Year(madate), Month(madate) + 2, 0))
    MsgBox Nbjourmoissuivant
    '
    ' je rajoute 3 mois puis je prends le jour(0) ce qui me donne le nombre de jour du 2d mois suivant la date depart
    'que je divise par 2 bien evidement
    Nbjourdemie = Day(DateSerial(Year(madate), Month(madate) + 3, 0)) / 2
    MsgBox Nbjourdemie
    '
    'donc
    j = Val(Nbjourmoissuivant) + Val(Nbjourdemie) 'j'ai mon 1 mois et demi en nombre de jours
    newdate = DateSerial(Year(madate), Month(madate), Day(madate) + j) 'j'ajoute les jours
    MsgBox newdate
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    [...]et un demie moi = (le nombre de jour du 2 eme mois suivant la date de départ )/2[...]
    Et pourquoi est-ce le second mois qui est divisé par 2? Je n'ai pas lu dans le message initial que la règle de gestion à appliquer était celle-là.
    • Peut-être est le mois de la date de signature qu'il faut diviser par deux;
    • Peut-être est-ce le mois de la date d'échéance qu'il faut diviser par deux;
    • Peut-être faut-il prendre le prorata entre le premier et le second mois (et s'il y a sept mois, on fait quoi? Et si la date d'échéance tombe le 1er du mois, on fait quoi?);
    • Peut-être...




    Unparia a essayé de te faire comprendre, apparemment en pure perte, que "un mois et demi" n'est pas calculable, sauf à fixer une règle de gestion qui doit alors être développée ici par le demandeur et que ni toi ni nous ne possédons à l'heure actuelle.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour pierre fauconnier

    parce que je part du principe que un mois et demie de plus c'est + 1 mois+ la moitié d'un mois

    soit 45 jours ou 46 jours selon le mois de départ sauf si la date échéance tombe en février 44 jours (puisque 28)

    et quoi que pour être exact il faudrait

    la date +les jour restant jusqu'à la fin du mois de la date + 1 mois (+/- 15-les jours restant précédemment cités)

    bref toujours est il que l'on est a 45/46/44 jours
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    [...]bref toujours est il que l'on est a 45/46/44 jours
    A 5000 euros l'indemnité par jour de retard, je doute que l'on se satisfasse de ton approximation
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    a oui!!
    essaie 31 janvier /xxxx + 30 jours et dis moi que tu tombe bien sur 1 mois de plus pil poil hein
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    a oui!!
    essaie 31 janvier /xxxx + 30 jours et dis moi que tu tombe bien sur 1 mois de plus pil poil hein
    C'est pourquoi il est impossible de répondre à la demande initiale tant que le posteur ne donne pas une règle de gestion détaillée et couvrant tous les cas de figure.

    Mais tu t'obstines à ne pas comprendre ça, alors que c'est élémentaire
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut
    Bonjour,

    Je vous remercie pour les réponses et je suis un peu désolée pour le débat lancé sur la notion de mois et demi.
    Malheureusement, je ne sais répondre que par l'énoncé initial. Ce n'est hélas pas moi qui ait écris le contrat (je l'aurais fait surement autrement, et demandé a le relire).

    J'ai plusieurs dates de référence avec des délais de type :
    • EDC + 2,5 months
    • 1.5 Months after Service Update
    • 1.5 Months after each Release Candidate Delivery
    • EDC Amndt 5 + 0,5 Month
    • EDC Amndt 5 + 5,5 Months


    J'imagine que le raccourci est fait 1 mois = 30 jours, 1 demi mois = 15 jours. Les jours férié, les samedi, dimanches devant surement "équilibrer" la variance des mois a 31, 29 et 28 jours.
    La premiere réponse répond a mon probleme. Par conséquent je vais la prendre et évaluer les résultat avec un compte "manuel des jours" et avec les "équipes MS Projetc"

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Si tu pars sur le principe que un mois = 30 jours, alors, relis ma première intervention, car il n'y a nul besoin de vba pour cela.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  16. #16
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Si tu pars sur le principe que un mois = 30 jours, alors, relis ma première intervention, car il n'y a nul besoin de vba pour cela.
    En fait je recherchais une fonction me permettant d'éviter de tomber sur un "Week-end" et prenant en compte "la notion de demi mois"
    Je suis tombé sur ceci : https://www.extendoffice.com/documen...onth-hour.html

    Je n'ai pas vraiment rechercher a analyser comment cela fonctionnait, je suis allé au plus simple (même si la formule est compliquée, d'ou la "simplification" par le VBA).

  17. #17
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Alors, tu dois préciser la règle de gestion...

    Qu'en est-il si le jour calculé à x.y mois correspond à un jour férié? Doit-on prendre le premier jour ouvré avant, après?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  18. #18
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    comme je l'ai dis dateserial fait tres bien le boulot
    Je trouve (question de point de vue) que, pour ce cas, DateAdd est plus adapté.
    Visuellement, les formules me semblent beaucoup plus simples et claires.
    Et mathématiquement, ma formule me semble plus proche de la réalité.

    Citation Envoyé par Delivrance Voir le message
    Je vous remercie pour les réponses et je suis un peu désolée pour le débat lancé sur la notion de mois et demi.
    Malheureusement, je ne sais répondre que par l'énoncé initial. Ce n'est hélas pas moi qui ait écris le contrat (je l'aurais fait surement autrement, et demandé a le relire).

    J'ai plusieurs dates de référence avec des délais de type :
    • EDC + 2,5 months
    • 1.5 Months after Service Update
    • 1.5 Months after each Release Candidate Delivery
    • EDC Amndt 5 + 0,5 Month
    • EDC Amndt 5 + 5,5 Months
    Sérieusement, je ne signerais jamais (professionnellement ni même personnellement) un contrat avec un échéancier présenté ainsi.
    A moins qu'on considère que les dates de référence sont au 1er du mois, que le demi-mois est le 15 et que 0,5 mois + 0,5 mois = 1 mois.

    Mais ça reste quand même très flou.
    Et il est toujours déconseillé de signer un document contractuel engageant qui soit flou.

    Je ne connais aucune entreprise qui utilise le mois comme unité d'échéance et je n'imagine même pas qu'une de celles que je connais puisse utiliser des fractions de mois. Un fournisseur que me mettrait ça dans son échéancier reprendrait son contrat aussi sec avec ordre de revoir sa copie.
    Quasiment tout le monde utilise professionnellement la semaine ou le jour comme unité.

    Pour reprendre ton exemple, il serait beaucoup plus professionnel d'écrire :
    • EDC + 11 weeks
    • 7 weeks after Service Update
    • 7 weeks after each Release Candidate Delivery
    • EDC Amndt 5 + 2 weeks
    • EDC Amndt 5 + 24 weeks


    les samedi, dimanches devant surement "équilibrer" la variance des mois a 31, 29 et 28 jours.
    Glups !!!
    C'est quoi ce truc ? Franchement, c'est un échéancier non contractuel juste fourni à titre informatif ?

    En fait je recherchais une fonction me permettant d'éviter de tomber sur un "Week-end"
    En quoi cela pose-t-il un problème ?
    Si la date d'échéance tombe un dimanche (ce qui n'arriverait pas si l'unité de base était la semaine) et que l'entreprise ne travaille pas samedi et dimanche, il faudra simplement que ce soit terminé le vendredi au soir.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2008, 16h51
  2. [Dates] Ajouter un mois à une date
    Par Higestromm dans le forum Langage
    Réponses: 8
    Dernier message: 17/01/2006, 15h27
  3. Calcul de date en années ET mois
    Par priest69 dans le forum Access
    Réponses: 2
    Dernier message: 26/09/2005, 18h53

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