Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Calcul de dates sans jours fériés, SAM et DIM

xamenod

XLDnaute Junior
Bonjour à tous,
Je cherche depuis quelques jours à créer une macro permettant d'ajouter un certain nombre de jours, 8 en mode "normal et 2 en mode "express" à une date dans .
Le résultat obtenu serai la date finale sans prise en compte des jours fermés, samedi dimanche et jours fériés.
J'ai essayé, sur un autre fichier tout un tas de méthode trouvé sur le net, sans grand succès, ou alors avec des résultats incohérents.
Merci pour votre aide.
Bonne journée.
Henry.
 

Pièces jointes

  • TEST_2.xlsm
    15.9 KB · Affichages: 10

Efgé

XLDnaute Barbatruc
Bonjour à toutes et à tous
VB:
Sub dateDecal()
Dim Rng As Range

Set Rng = Sheets("Feuil1").Range("$C$2:$C$" & Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row)

With Rng
    .FormulaLocal = "=SERIE.JOUR.OUVRE(A2;SI(B2=""Express"";2;8);$O$5:$O$16)"
    .Value = .Value
End With

End Sub

Il faudra revoir les dates de fériés qui sont surpremnantes dans l'exemple.

Cordialement
 

xamenod

XLDnaute Junior
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
J'ai saisie la différence.
Au final,
- @JHA et @Efgé rajoutent 8 jours ouvrés à la date de départ (Comme expliqué par @JHA dans son dernier fichier (ligne 27 à 41)
- Je rajoute 8 jours consécutifs à la date de départ et teste cette nouvelle date. Si Samedi, Dimanche ou Jours fériés on rajoute x jours pour tomber sur une date correcte.

Dans tous les cas, la demande initiale demande + 8 jours ou + 2 jours (et pas en jours ouvrés)
J'en perds mon latin
Qui à juste au final ?
@+ Lolote83
 

Lolote83

XLDnaute Barbatruc
Re bonjour @Efgé ,
La liste des jours fériés est une liste que notre ami @xamenod ne souhaite pas. D'ou la présence de cette liste.
Mon analyse est donc la suivante:
Je prend la date de départ.
En fonction de NORMAL ou EXPRESS, je rajoute à cette date 8 ou 2 jours (consécutifs)
De la, une nouvelle date est donc calculée. A partir de cette nouvelle date, je regarde son jour de la semaine.
Si Samedi, je rajoute encore 2 jours (pour tomber sur le lundi suivant) car on ne doit pas avoir ni samedi, ni dimanche
Si Dimanche, je rajoute encore 1 jour (pour tomber sur le lundi suivant) car on ne doit pas avoir de dimanche.
De la, une nouvelle date est donc calculée. A partir de cette nouvelle date, je regarde si on tombe sur un jour férié.
Si Oui, on recommence au niveau des samedis ou dimanches etc etc etc
Voici ma réflexion, mais peut être que je me trompe
@+ Lolote83
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…