DATE + jours ouvrés

Le
big
Bonjour,
comment je peux faire additionner une date à un nmbre de jours ouvrés et
obtenir une date en tenant compte des WE et des jours fériés intermédiaires ?
Par exemple :
jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.

D'avance merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Caetera
Le #20302561
"big"
Bonjour,
comment je peux faire additionner une date à un nmbre de jours ouvrés et
obtenir une date en tenant compte des WE et des jours fériés intermédiaires ?
Par exemple :
jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.




******************

Avec une plage nommée pour les jours fériés et l'utilitaire d'analyse (pas
super conseillé)

=SERIE.JOUR.OUVRE(A1;2;joursFériés)

Avec une matricielle :
=PETITE.VALEUR(SI((JOURSEM(A1+LIGNE(INDIRECT("1:1000"));2)<6)*(ESTNA((EQUIV(A1+LIGNE(INDIRECT("1:1000"));joursFériés;0))));A1+LIGNE(INDIRECT("1:1000")));2)

Etc
Daniel.C
Le #20302551
Bonjour.
=SERIE.JOUR.OUVRE(A1;2)
avec 1/10/2009 en A1.
Si tu utilises une version antérieure à XL2007, tu dois avoir installé
la macro complémentaire "Utilitaire d'analyse".
Cordialement.
Daniel

Bonjour,
comment je peux faire additionner une date à un nmbre de jours ouvrés et
obtenir une date en tenant compte des WE et des jours fériés intermédiaires ?
Par exemple :
jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.

D'avance merci.


Jacky
Le #20302991
Bonsoir ,

Date en A1
Nb de jours à additionnés en B1
Les dates fériées nommées "feriés"
Adapter de AV

=PETITE.VALEUR(SI((JOURSEM(A2+LIGNE(INDIRECT("1:1000"));2)<6)*(ESTNA((EQUIV(A2+LIGNE(INDIRECT("1:1000"));feriés;0))));A2+LIGNE(INDIRECT("1:1000")));$B$2)

Matricielle. Valider par ctrl+maj+entrée
A saisir sur une seule ligne
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj200910/cij5RoVTmK.xls
--
Salutations
JJ


"big"
Bonjour,
comment je peux faire additionner une date à un nmbre de jours ouvrés et
obtenir une date en tenant compte des WE et des jours fériés
intermédiaires ?
Par exemple :
jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.

D'avance merci.


FS
Le #20303361
Bonsoir,

Une fonction perso s'appuyant sur l'inusable fonction TYPEJOUR de
Laurent Longre qui calcule entre autres les jours fériés :

'================ Function AjouterJoursW(D As Date, Jours As Long)
Dim i As Long, Dt As Date
Dt = D
For i = 1 To Jours
Dt = Dt + 1
If TYPEJOUR(Dt) <> 0 Then i = i - 1
Next
AjouterJoursW = Dt
End Function

Function TYPEJOUR(D As Date)
'L. Longre
Dim A As Integer, T As Integer
Dim LP As Date, LD As Long
Dim Toto As Long

A = Year(D)
If A > 2099 Then
TYPEJOUR = CVErr(xlErrValue)
Exit Function
End If
LD = Int(D)
If LD <= 2 Then
If LD = 1 Then TYPEJOUR = 2
Exit Function
End If
T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
LP = DateSerial(A, 3, 2) + T + (T > 48) _
+ 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7)
Select Case D
' Jours fériés mobiles
Case Is = LP, Is = LP + 38, Is = LP + 49
TYPEJOUR = 2
' Jours fériés fixes
Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
TYPEJOUR = 2
Case Else
' Samedi ou dimanche
If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1
End Select

End Function
'================
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

big a écrit :
Bonjour,
comment je peux faire additionner une date à un nmbre de jours ouvrés et
obtenir une date en tenant compte des WE et des jours fériés intermédiaires ?
Par exemple :
jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.

D'avance merci.


FS
Le #20303351
Re,

Et s'il peut t'arriver de remonter le temps, préfère cette version qui
accepte en 2ème paramètre un nombre positif ou négatif :

'============== Function AjouterJoursW(D As Date, Jours As Long)
Dim i As Long, Dt As Date
Dt = D
For i = 1 To Abs(Jours)
Dt = IIf(Jours < 0, Dt - 1, Dt + 1)
If TYPEJOUR(Dt) <> 0 Then i = i - 1
Next
AjouterJoursW = Dt
End Function

Function TYPEJOUR(D As Date)
'L. Longre
Dim A As Integer, T As Integer
Dim LP As Date, LD As Long
Dim Toto As Long

A = Year(D)
If A > 2099 Then
TYPEJOUR = CVErr(xlErrValue)
Exit Function
End If
LD = Int(D)
If LD <= 2 Then
If LD = 1 Then TYPEJOUR = 2
Exit Function
End If
T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
LP = DateSerial(A, 3, 2) + T + (T > 48) _
+ 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7)
Select Case D
' Jours fériés mobiles
Case Is = LP, Is = LP + 38, Is = LP + 49
TYPEJOUR = 2
' Jours fériés fixes
Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
TYPEJOUR = 2
Case Else
' Samedi ou dimanche
If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1
End Select

End Function
'==============
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

big a écrit :
Bonjour,
comment je peux faire additionner une date à un nmbre de jours ouvrés et
obtenir une date en tenant compte des WE et des jours fériés intermédiaires ?
Par exemple :
jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.

D'avance merci.


big
Le #20307491
Bonjour FS,
merci pour ta réponse. Mais comment coller ta fonction dans visual basic et
faire appel à celle-ci dans feuil EXCEL.
Je l'ai collé dans un macro mais apparemment le macro n'accept que SUB et
non pas de fonction.
D'avance merci.

"FS" a écrit :

Bonsoir,

Une fonction perso s'appuyant sur l'inusable fonction TYPEJOUR de
Laurent Longre qui calcule entre autres les jours fériés :

'================ > Function AjouterJoursW(D As Date, Jours As Long)
Dim i As Long, Dt As Date
Dt = D
For i = 1 To Jours
Dt = Dt + 1
If TYPEJOUR(Dt) <> 0 Then i = i - 1
Next
AjouterJoursW = Dt
End Function

Function TYPEJOUR(D As Date)
'L. Longre
Dim A As Integer, T As Integer
Dim LP As Date, LD As Long
Dim Toto As Long

A = Year(D)
If A > 2099 Then
TYPEJOUR = CVErr(xlErrValue)
Exit Function
End If
LD = Int(D)
If LD <= 2 Then
If LD = 1 Then TYPEJOUR = 2
Exit Function
End If
T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
LP = DateSerial(A, 3, 2) + T + (T > 48) _
+ 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7)
Select Case D
' Jours fériés mobiles
Case Is = LP, Is = LP + 38, Is = LP + 49
TYPEJOUR = 2
' Jours fériés fixes
Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
TYPEJOUR = 2
Case Else
' Samedi ou dimanche
If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1
End Select

End Function
'================ >
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

big a écrit :
> Bonjour,
> comment je peux faire additionner une date à un nmbre de jours ouvrés et
> obtenir une date en tenant compte des WE et des jours fériés intermédiaires ?
> Par exemple :
> jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.
>
> D'avance merci.



big
Le #20308471
Bonjour Jacky,
merci pour le fichier. Quand je saisi dans A3 la date et dans B3 le nombre
de jours comment je fais pour obtenir le résultat dans D3 ?
D'avance merci.

"Jacky" a écrit :

Bonsoir ,

Date en A1
Nb de jours à additionnés en B1
Les dates fériées nommées "feriés"
Adapter de AV

=PETITE.VALEUR(SI((JOURSEM(A2+LIGNE(INDIRECT("1:1000"));2)<6)*(ESTNA((EQUIV(A2+LIGNE(INDIRECT("1:1000"));feriés;0))));A2+LIGNE(INDIRECT("1:1000")));$B$2)

Matricielle. Valider par ctrl+maj+entrée
A saisir sur une seule ligne
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj200910/cij5RoVTmK.xls
--
Salutations
JJ


"big"
> Bonjour,
> comment je peux faire additionner une date à un nmbre de jours ouvrés et
> obtenir une date en tenant compte des WE et des jours fériés
> intermédiaires ?
> Par exemple :
> jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.
>
> D'avance merci.






big
Le #20308781
Grand merci à tous.
Surtout à Jacky. J'ai retenu sa solution (son fichier).
Cordialement.
"FS" a écrit :

Re,

Et s'il peut t'arriver de remonter le temps, préfère cette version qui
accepte en 2ème paramètre un nombre positif ou négatif :

'============== > Function AjouterJoursW(D As Date, Jours As Long)
Dim i As Long, Dt As Date
Dt = D
For i = 1 To Abs(Jours)
Dt = IIf(Jours < 0, Dt - 1, Dt + 1)
If TYPEJOUR(Dt) <> 0 Then i = i - 1
Next
AjouterJoursW = Dt
End Function

Function TYPEJOUR(D As Date)
'L. Longre
Dim A As Integer, T As Integer
Dim LP As Date, LD As Long
Dim Toto As Long

A = Year(D)
If A > 2099 Then
TYPEJOUR = CVErr(xlErrValue)
Exit Function
End If
LD = Int(D)
If LD <= 2 Then
If LD = 1 Then TYPEJOUR = 2
Exit Function
End If
T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
LP = DateSerial(A, 3, 2) + T + (T > 48) _
+ 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7)
Select Case D
' Jours fériés mobiles
Case Is = LP, Is = LP + 38, Is = LP + 49
TYPEJOUR = 2
' Jours fériés fixes
Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
TYPEJOUR = 2
Case Else
' Samedi ou dimanche
If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1
End Select

End Function
'============== >
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

big a écrit :
> Bonjour,
> comment je peux faire additionner une date à un nmbre de jours ouvrés et
> obtenir une date en tenant compte des WE et des jours fériés intermédiaires ?
> Par exemple :
> jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.
>
> D'avance merci.



Jacky
Le #20309961
Re
...comment je fais pour obtenir le résultat dans D3 ?


Enlève le "$" devant le "2" de $B$2 et recopie (Tirer) la formule vers le
bas

=PETITE.VALEUR(SI((JOURSEM(A2+LIGNE(INDIRECT("1:1000"));2)<6)*(ESTNA((EQUIV(A2+LIGNE(INDIRECT("1:1000"));feriés;0))));A2+LIGNE(INDIRECT("1:1000")));$B2)

Un exemple avec également les fonctions de LL/FS
que tu dois mettre dans un module standard et non pas à l'intérieur d'une
macro.
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj200910/cijgFBMQTx.xls

--
Salutations
JJ


"big"
Bonjour Jacky,
merci pour le fichier. Quand je saisi dans A3 la date et dans B3 le nombre
de jours comment je fais pour obtenir le résultat dans D3 ?
D'avance merci.

"Jacky" a écrit :

Bonsoir ,

Date en A1
Nb de jours à additionnés en B1
Les dates fériées nommées "feriés"
Adapter de AV

=PETITE.VALEUR(SI((JOURSEM(A2+LIGNE(INDIRECT("1:1000"));2)<6)*(ESTNA((EQUIV(A2+LIGNE(INDIRECT("1:1000"));feriés;0))));A2+LIGNE(INDIRECT("1:1000")));$B$2)

Matricielle. Valider par ctrl+maj+entrée
A saisir sur une seule ligne
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj200910/cij5RoVTmK.xls
--
Salutations
JJ


"big"
> Bonjour,
> comment je peux faire additionner une date à un nmbre de jours ouvrés
> et
> obtenir une date en tenant compte des WE et des jours fériés
> intermédiaires ?
> Par exemple :
> jeudi 1 octobre +2 jours ouvrés (Ven et Lun)=Lundi 5 Octobre.
>
> D'avance merci.








Publicité
Poster une réponse
Anonyme