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

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 !

sonskriverez

XLDnaute Occasionnel
Bonjour le forum,

J'ai dans une cellule une date par ex : 01/04/2009 je rajoute à cette date 60 jrs ce qui donne 31/05/09.
Le pbl est que ce jour tombe un dimanche, je voudrais dans ce cas inscrire le dernier jrs ouvrés donc le 29/05/2009.

J'utilise déja les fonctions de calcul de jours ouvrés avec une plage de jours fériés

Merci de votre aide
 
Re : Jours Ouvrés

Bonjour,

Il faudrait voir votre fichier avec la liste des jours fériés.

Il faut réaliser une fonction macro qui à partir de la date trouvée remonte les jours (par une boucle sur 4 jours par exemple) pour trouver le 1er jour non férié ou chomé.

A+

Edit : salut tototiti, JCGL
 
Dernière édition:
Re : Jours Ouvrés

Bonsoir Raja, Job75, JCGL, tototiti2008, le forum

Merci de votre aide, j'ai essayé vos solutions mais cela ne prend pas en compte une plage de jours fériés, il faudrait que la date + 60 jrs ne tombe pas un jour férié, samedi ou dimanche.

Je joins un fichier pour exemple

Merci de votre aide
 

Pièces jointes

Re : Jours Ouvrés

Bonsoir à tous,

J'ai poursuivi mon idée de départ en créant la fonction Datefin. Voir fichier ci-joint.

Le code :

Code:
Function Datefin(dat)
Dim i As Byte
For i = 0 To 4
dat = dat - i
If Weekday(dat) = 1 Or Weekday(dat) = 7 Or IsNumeric(Application.Match(dat, Range("F3:F18"), 0)) Then GoTo 1
Datefin = dat
Exit Function
1 Next
End Function

A+

Edit : je ne m'explique pas pour l'instant le jeudi 28 mai...
 

Pièces jointes

Dernière édition:
Re : Jours Ouvrés

Bonsoir Job75,

Je viens de tester, cela fonctionne sur l'exemple et merci beaucoup, par contre dans mon fichier la plage de jrs fériés se trouve dans une autre feuille et j'ai nommé une plage "ferie" comment puis-je integrer cela dans la macro ?
 
Re : Jours Ouvrés

Autre questions, si je fais :

en B1 lun 05 janv 09 en C1 =Datefin(B1+1) resultat mar 06 janv --- ok
Datefin(B1+2) resultat mer 07 janv --- ok

cela va bien jusqu'au vendredi

Datefin(B1+5) resultat ven 09 janv --- super ven a la place sam
ou cela plante
Datefin(B1+6) resultat jeu 08 jav --- cela devrait être ven 9 janv
 
Re : Jours Ouvrés

Re,

Il y avait une erreur grossière dans la macro, prenez le fichier ci-joint.

Code:
Function Datefin(dat As Long)
Dim i As Byte, x As Long
For i = 0 To 4
x = dat - i
If Weekday(x) = 1 Or Weekday(x) = 7 Or IsNumeric(Application.Match(x, [COLOR="Red"]Sheets(1).[/COLOR]Range("ferie"), 0)) Then GoTo 1
Datefin = x
Exit Function
1 Next
End Function

Par ailleurs j'ai nommé comme vous la plage "ferie" en Feuil1. Si elle est en Feuil2, remplacez Sheets(1) par Sheets(2).

A+
 

Pièces jointes

Re : Jours Ouvrés

Bonjour à tous,

Euh sonskriverez, as-tu testé la formule de Monique...

Garde un mémoire qu'une formule est SOUVENT plus efficace qu'un code.

Bien évidement ceci n'enlève rien au code de l'ami Job.

A+
 
Re : Jours Ouvrés

Ca y est, la méthode de Monique et de Job fonctionne.

Effectivement entre une macro et une formule je n'hesite pas et j'utilise la formule, merci JCGL de ton rappel.

Nonique merci de ta formule t'es toujours la plus forte le tps n'a plus de secret pour toi 🙂

Job un grand merci cela est toujours trés utile de comprendre une macros.



Merci à tous ceux qui ont planchés sur mon pbl
 
Re : Jours Ouvrés

Re,

Je vote aussi pour la formule de Monique (toujours la meilleure).

Pour la macro, celle-ci est beaucoup plus élégante, désolé pour mon travail laborieux :

Code:
Function Datefin(dat)
While Weekday(dat) = 1 Or Weekday(dat) = 7 Or IsNumeric(Application.Match(dat, Sheets(1).Range("ferie"), 0))
dat = dat - 1
Wend
Datefin = dat
End Function

A+
 

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

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
396
Réponses
6
Affichages
644
Réponses
5
Affichages
682
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…