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
 

Lolote83

XLDnaute Barbatruc
Re bonjour à tous,
J'ai compris :
- NORMAL = 8 jours après la date de départ
- EXPRESS = 2 jours après la date de départ

1644588396276.png


Attends @xamenod avant de crier victoire, @JHA et moi ne tombons pas sur les mêmes résultats.

@+ Lolote83
 

xamenod

XLDnaute Junior
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
 

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

Statistiques des forums

Discussions
312 195
Messages
2 086 083
Membres
103 115
dernier inscrit
fiachris26