Calcul délai sur 6 jours/semaine

  • Initiateur de la discussion Initiateur de la discussion Delys
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Delys

Guest
Bonjour à tous,

Après recherche et lecture des post, je ne trouve pas de réponse à mon problème.

J'aimerai avoir la date butoir de la réception d'une lettre suivant un délai connu.
J'utilise =SERIE.JOUR.OUVRE(A1;B1;E1), en ayant l'outil d'analyse
A1 : date début
B1 : nb jours
E1 : jours fériés

Mais cette formule exclue le samedi et dimanche. Or, je veux qu'il inclue le samedi dans son calcul, et excluant le dimanche et jours fériés.

Connaissez vous une formule adaptée à mon souci, ou dois-je ajouter un arguement?

Merci d'avance.


Delys
 
Re : Calcul délai sur 6 jours/semaine

Utilise la fonction perso jointe
Cette fonction n'est pas de moi,
je t'ai juste modifié un 6 en 7 pour que tu n'aies que les dimanches en non ouvrés

Ajuste les dimension du tableau Arr(10) en Arr(9) si tu veux supprimer le lundi de pentecôte

Code:
Function PlusJOuvres(D, NbJours)
'http://perso.orange.fr/frederic.sigonneau/code/Calendriers/AjouterJoursOuvres.txt
Dim Dt, i
Dim NbOr, Epacte As Integer
Dim PLune, LPaques, Arr(10) As Long
 An = Year(D)
  Dt = CLng(D)
  Do
    Dt = Dt + 1
    'calcul du Lundi de Pâques
    NbOr = (An Mod 19) + 1
    Epacte = (11 * NbOr - (3 + Int(2 + Int(An / 100)) * 3 / 7)) Mod 30
    PLune = DateSerial(An, 4, 19) - ((Epacte + 6) Mod 30)
    If Epacte = 24 Then PLune = PLune - 1
    If Epacte = 25 And (An >= 1900 And An < 2200) Then PLune = PLune - 1
    LPaques = PLune - Weekday(PLune) + vbMonday + 7    'Lundi Paques
    
    'tableau des fériés
    Arr(0) = DateSerial(An, 1, 1)
    Arr(1) = LPaques
    Arr(2) = LPaques + 38  'Ascencion
    Arr(3) = LPaques + 49  'Pentecôte
    Arr(4) = DateSerial(An, 5, 1)
    Arr(5) = DateSerial(An, 5, 8)
    Arr(6) = DateSerial(An, 7, 14)
    Arr(7) = DateSerial(An, 8, 15)
    Arr(8) = DateSerial(An, 11, 1)
    Arr(9) = DateSerial(An, 11, 11)
    Arr(10) = DateSerial(An, 12, 25)
    
    'ajoute si ouvré
' Samedi et dimanche
'    If (IsError(Application.Match(Dt, Arr, 0))) = True And _
'        (Weekday(Dt, vbMonday) < 6) = True Then
' Que les dimanches
  If (IsError(Application.Match(Dt, Arr, 0))) = True And _
        (Weekday(Dt, vbMonday) < 7) = True Then
     i = i + 1
    End If
  Loop Until i = NbJours
  
  PlusJOuvres = Dt
End Function 'fs
 
Re : Calcul délai sur 6 jours/semaine

Bonsoir,

En matriciel:

A2: début
B2: nb jours ouvrés

=INDEX(PETITE.VALEUR(SI((JOURSEM(A2+LIGNE(INDIRECT("1:"&B2*2));2)<7)*(NB.SI(fériés;A2+LIGNE(INDIRECT("1:"&B2*2)))=0);A2+LIGNE(INDIRECT("1:"&B2*2)));LIGNE(INDIRECT("1:"&B2*2)));B2)
valider avec maj+ctrl+entrée

JB
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
1 K
Réponses
12
Affichages
1 K
D
Réponses
24
Affichages
4 K
D
Réponses
20
Affichages
4 K
Débutant79
D
P
Réponses
7
Affichages
4 K
P
J
Réponses
5
Affichages
4 K
jesustherockstar
J
G
Réponses
2
Affichages
2 K
Genetix33
G
P
Réponses
9
Affichages
6 K
P
P
Réponses
5
Affichages
3 K
Pablo1991
P
M
Réponses
15
Affichages
2 K
J
Réponses
6
Affichages
2 K
Réponses
3
Affichages
822
Retour