Calcul dates jours fermés

Résolu
Miramar26 Messages postés 6 Statut Membre -  
Miramar26 Messages postés 6 Statut Membre -
Bonjour à tous,

J'aimerais créer un tableau mensuel avec dates, sans tenir compte des jours fermés du magasin, soit dimanche et lundi.

J'ai utilisé les fonctions joursem et date mais quand je recopie la formule, elle n'est pas incrémentée correctement. Quelqu'un a-t-il une idée ? Merci d'avance.

4 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonsoir
    voyez ici si ça répond à votre demande
    https://www.cjoint.com/c/FBktkCtKYJL
    (nouveau lien suite modif fichier formule en A3)
    crdlmnt

    La qualité de la réponse dépend surtout de la clarté de la question, merci!
    0
  2. Miramar26 Messages postés 6 Statut Membre
     
    Merci beaucoup. C'est exactement ça. Est-ce que vous pouvez svp commenter la formule pour en comprendre la logique ? Merci d'avance
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      on va essayer
      En A3, le 1° jour du mois à prendre en compte à partir de 1 et D1
      =SI(JOURSEM(DATE(B1;D1;1);2)=7;DATE(B1;D1;1)+2;SI(JOURSEM(DATE(B1;D1;1);2)=1;DATE(B1;D1;1)+1;DATE(B1;D1;1)))

      JOUSRSEM(Date;2) donne le rang du jour dans la semaine :lundi =1 jusqu'à dimanche =7 si vous utilisez le paramètre ;2) sinon, c'est le dimanche qui est 1 (à l'américaine)
      DATE(ANNEE;MOIS;JOUR) donne la date correspondant aux valeurs indiquées
      Donc la formule:
      cherche le jour de la semaine de la date composée par l'année en B1, le N° de mois en D1 et le premier jour du mois (donc le 1)
      Si ce jour est 7 donc dimanche, la formule rajoute 2 à la date pour obtenir le 1° mardi du mois
      si ce jour est 1 donc lundi, la formule rajoute 1 à la date
      si ce jour est autre, la date est placée directement

      En A4 et suite sur le même principe de jour de semaine

      =SI(A3="";"";SI(MOIS(A3+SI(OU(JOURSEM(A3;2)=1;JOURSEM(A3;2)=6);3;1))<>MOIS(A3);"";SI(OU(JOURSEM(A3;2)=1;JOURSEM(A3;2)=6);A3+3;A3+1)))

      =SI(A3="";"";
      si la date précédente est vide, renvoie vide

      ;SI(MOIS(A3+SI(OU(JOURSEM(A3;2)=1;JOURSEM(A3;2)=6);3;1))<>MOIS(A3);"";
      si le mois de la date précédente est différent du mois de la date suivante calculée suivant le jour de la semaine (soit +1 pour jours ouvrables, +3 pour jours fermés)
      renvoie vide

      SI(OU(JOURSEM(A3;2)=1;JOURSEM(A3;2)=6);A3+3;A3+1)))

      calcule la date à afficher en rajoutant 1 si la précédente tombe du mardi au vendredi
      sinon rajoute 3 pour passer du samedi au mardi.

      Mais en fait et après réflexion cette partie de la formule pourrait être simplifiée en ne considérant que le samedi (6) puisque le lundi (1) ne sera jamais dans les dates précédentes et donc cette fin de formule pourrait s'écrire seulement

      .................;SI(JOURSEM(A3;2)=6;A3+3;A3+1)))

      Voila. Espérant avoir été assez clair, ce n'est pas facile par écrit

      bon courage

      crdlmnt
      0
      1. Miramar26 Messages postés 6 Statut Membre > Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci beaucoup. C'est fort aimable de votre part. Je vous en suis très reconnaissant. Meilleures salutations.
        Miramar
        0
  3. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonsoir à tous,

    Pour le 1er jour du mois,en B3, tu peux aussi utiliser :
    =SERIE.JOUR.OUVRE.INTL(DATE($B$1;$D$1;1)-1;1;2)

    et pour les autres :
    =SERIE.JOUR.OUVRE.INTL(B3;1;2)


    je te laisse gérer les fin de mois soit avec des SI(), soit avec une MFC.

    Cordialement
    0
  4. Miramar26 Messages postés 6 Statut Membre
     
    Merci infiniment.

    Miramar
    0