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 :

Comment prendre en compte le nombre de jours ouvrés sur 1 mois mais en le comptant à rebours? [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Comment prendre en compte le nombre de jours ouvrés sur 1 mois mais en le comptant à rebours?
    Bonjour,

    Je suis confrontée à un souci et je vous remercie si vous avez une solution afin d'automatiser ou améliorerCALENDRIER.xlsx ce fichier
    J'ai réalisé un fichier Excel sur lequel figure le nombre de jours ouvrés par mois.

    1/ Quand j'arrive à la fin du mois, je dois mettre B0 pour le dernier jour ouvré du mois et remonter à rebours jusqu'à B-4
    2/ Sachant que les fins de mois sont toutes différentes, et que je dois le faire sur toute l'année 2021, comment dois je procéder?

    Au départ j'ai pensé utiliser les formules Excel, mais je suis bloquée.
    Auriez vous d'autres moyens? (vba etc..)

    Merci beaucoup pour l'aide apportée!
    PS : en PJ le fichier.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme beaucoup de contributeurs de ce site, je n'ouvre jamais les fichiers joints. Je ne vois donc pas comment vos données sont présentées

    En attendant d'autres explications voici quelques exemples (les formules présentées se trouvent dans un tableau structuré)
    • =DATE(2021;2;0) renvoie le dernier jour du mois qui précède celui dont le n° est indiqué comme 2ème argument (ici le dernier jour de janvier)
    • =NB.JOURS.OUVRES([@[Date départ]];[@[Date fin]];t_Holidays[Jours fériés]) renvoie le nombre de jours ouvrés si on les considère du lundi au vendredi
    • =NB.JOURS.OUVRES.INTL([@[Date départ]];[@[Date fin]];"1000001";t_Holidays[Jours fériés]) renvoie le nombre de jours ouvrés en fonction des 0 et des 1 placés en 3ème argument (les 0 représentent les jours ouvrés)

    t_Holidays est le tableau contenant la liste des jours fériés et Jours fériés le nom de la colonne contenant la date du jour férié
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour,
    Citation Envoyé par ranomanitra Voir le message
    1/ Quand j'arrive à la fin du mois, je dois mettre B0 pour le dernier jour ouvré du mois et remonter à rebours jusqu'à B-4
    "Au départ j'ai pensé utiliser les formules Excel, et tu faisais une bonne analyse car avec cette formule cela devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SERIE.JOUR.OUVRE(O6;O8-4;fériés)
    Tu prends la date début et tu enlèves 4 au nombre de jours ouvrés du mois et tu obtiens la fin du mois - 4 comme tu souhaites

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Bonsoir,
    Tout d'abord, merci beaucoup d'avoir pris le temps de répondre à ma question.
    Pour plus de précisions : chaque nombre de jours ouvrés sur un mois est différent, je dois donc le prendre en compte

    En prenant l'exemple de Février (je ne reprends que la fin du tableau, mon tableau commence par B+1, etc...): qui comprend 20 jours ouvrés.
    Je souhaiterai que pour chaque mois et de façon automatisée ou via formule Excel, je puisse obtenir un décompte à rebours en partant de la fin de mois et me place directement B-4, B-3, B-2, B-1, B0 , en lieu et place de B+16, B+17, B+18, B+19,B+20 et cela pour chaque mois de l'année 2021. Je ne trouve pas de solution rapide.

    B+14 : jeu 18/02/2021
    B+15 : ven 19/02/2021
    B-4 : lun 22/02/2021
    B-3 : mar 23/02/2021
    B-2 : mer 24/02/2021
    B-1 : jeu 25/02/2021
    B0 : ven 26/02/2021
    B'+1 : lun 01/03/2021

    Merci beaucoup!!

  5. #5
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonsoir,
    Citation Envoyé par ranomanitra Voir le message
    En prenant l'exemple de Février (je ne reprends que la fin du tableau, mon tableau commence par B+1, etc...): qui comprend 20 jours ouvrés.
    Il me semble que la formule que je t'ai donnée, adaptée à ton classeur, remplit parfaitement ton souhait comme tu peux le voir dans ton classeur joint
    Fichiers attachés Fichiers attachés

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci Anasecu,
    Mais j'ai bien peur de ne pas comprendre ta formule, ou peut -être j'ai mal formulé ma question:

    Comment savoir rapidement à quoi correspond mon B-4, B-3, B-2, B-1, B0, sur tous les mois sur l'année 2021, 2022, etc...il me faut vraiment la correspondance:
    B-x = telle date sur tel mois.
    du coup j'ai fais ça manuellement sur tous les mois; ils seront forcément pareils pour les mois dont le nombre de jours ouvrés est équivalent

    Février 2021: si je prends la ligne par exemple du B-4 ça me donne le 22/02/2021, mais le B-4 de mars 2021 me donnera la date du 25/03/2021... donc à chaque fois se sera différent, idem pour les valeurs du B-3,B-2, etc...


    B-4 : 22/02/2021
    B-3 : 23/02/2021
    B-2 : 24/02/2021
    B-1 : 25/02/2021
    B0 : 26/02/2021

    MARS 2021 :
    B-4 : 25/03/2021
    B-3 : 26/03/2021
    B-2 : 29/03/2021
    B-1 : 30/03/2021
    B0 : 31/03/2021

    Merci bcp!!!

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Février 2021: si je prends la ligne par exemple du B-4 ça me donne le 22/02/2021, mais le B-4 de mars 2021 me donnera la date du 25/03/2021... donc à chaque fois se sera différent, idem pour les valeurs du B-3,B-2, etc.
    Et cela ne vous semble pas évident qu'il ne peut pas y avoir de correspondance ?
    Avec un mois de février dont la fin du mois est 28 ou 29 et un mois de mars où c'est 31 et avec en sus des jours fériés qui ne tombent pas les mêmes jours, c'est un peu compliqué.

    J'avoue que je comprends pas au final ce que vous cherchez à obtenir et qu'elle est le but.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonsoir,
    Citation Envoyé par ranomanitra Voir le message
    Mais j'ai bien peur de ne pas comprendre ta formule, ou peut -être j'ai mal formulé ma question
    Ma formule fonctionne sur toute l'année comme tu as vu sur ton classeur.

    Comment savoir rapidement à quoi correspond mon B-4, B-3, B-2, B-1, B0
    Comme dit Philippe (que je salue) : quel est le but ?

    Ton B-4 etc cela représente quel concept ?
    Tu passes des B+1 etc subitement à B-4 : c'est quoi cet ésotérisme ?

    il me faut vraiment la correspondance:B-x = telle date sur tel mois.
    Explique nous comment tu vas obtenir ton B+18 en février qui existe en mars mais pas l'autre mois ?
    Nicolas Boileau : « Ce que l’on conçoit bien s’énonce clairement »

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Bonjour Phillipe et Anasecu,
    Désolée, j'ai été très prise et n'ai pas répondu rapidement.

    Pour répondre à vos différentes questions.
    Je reprends un fichier déjà établit ainsi : Ce n'est pas de mon fait mais c'est une normalisation pour l'entité en question de partir de la date de fin de mois B0 et remonter à la date B-4. Sincèrement j'aurai procédé autrement. Le B correspond au business day.

    L'objectif est d'alimenter un diagramme de GANTT pour visualiser les étapes du projet.

    Ce que j'ai fait et je vais rester ainsi si je n'ai pas de solution: j'ai repris uniquement pour cette entité manuellement l'ensemble des mois 2021 en reprenant pour chacune les dates de fin de mois et remonter de B0 à B-4 pour chaque mois. Ainsi j'ai les mois de février + novembre qui ont exactement le même nombre de jours que je regrouperai, idem pour mars + décembre; Avril+juillet+ octobre ; mai est unique; Juin+aout + septembre. j'ai nommé cette plage de date pour qu'elle soit pareille pour toute et pour que le diagramme de gantt s'ajuste dès lors que je change de mois , La date est ramenée dans le diagramme par une simple recherche v.

    exemple sur mars + décembre 2021 : le champ date étant une zone de formule qui ne tient compte que des jours ouvrés

    B num date
    B+1 1 01/03/2021
    B+2 2 02/03/2021
    .
    .
    .
    B+18 18 24/03/2021
    B-4 19 25/03/2021
    B-3 20 26/03/2021
    B-2 21 29/03/2021
    B-1 22 30/03/2021
    B0 23 31/03/2021

    Sur avril+ juillet + octobre

    B num date
    B+1 1 01/04/2021
    B+2 2 02/04/2021
    .
    .
    .
    B+16 16 23/04/2021
    B-4 17 26/04/2021
    B-3 18 27/04/2021
    B-2 19 28/04/2021
    B-1 20 29/04/2021
    B0 21 30/04/2021

    Merci en tous les cas pour vos réponses, et non ce n'est pas de l'ésotérisme

  10. #10
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour ranomanitra
    Citation Envoyé par ranomanitra Voir le message
    Ce que j'ai fait et je vais rester ainsi si je n'ai pas de solution
    Avec ce que j'avais commencé de te proposer, voici un calendrier qui change en fonction de l'année saisie et qui devrait te donner tes "business day" comme tu le souhaites.

    En espérant que j'ai enfin compris ce que tu voulais.
    Fichiers attachés Fichiers attachés

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Franchement c'est énorme!!! c'est exactement ce que je cherchais à réaliser.
    Merci beaucoup Anasecu, car bien que je n'ai pas encore bien compris ta formule: c'est la première fois que je vois l'utilisation de la puissance dans une formule. De ce que je comprends : la fonction renvoie le dernier nombre de la plage et si tel est le cas, ça donne B0, et ainsi de suite.
    En tous les cas c'est juste royal!!

    Bravo et merci encore pour l'aide apportée!

  12. #12
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonsoir,
    Citation Envoyé par ranomanitra Voir le message
    Franchement c'est énorme!!! c'est exactement ce que je cherchais à réaliser.
    Je suis ravi de ton retour très sympathique et très content que tu obtiennes ce que tu cherchais.

    De ce que je comprends : la fonction renvoie le dernier nombre de la plage
    C'est exactement cela tu as parfaitement compris.

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

Discussions similaires

  1. comment prendre en compte une mise à jour
    Par Patrice Henrio dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 09/07/2008, 10h50
  2. Nombre de jours ouvrés d'un mois
    Par dav_e77 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 29/11/2006, 13h53
  3. Fonction qui compte le nombre de jours ouvrés par mois
    Par griese dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/07/2006, 15h32
  4. Excel : Nombre de jours ouvrés dans un mois
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/12/2005, 10h09
  5. [plugin][tomcat] Comment prendre en compte les jar ?
    Par djodjo dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 08/04/2004, 19h47

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