Série jours ouvrés avec vendredi en 1/2 journée

Bonjour à tous,

Je cherche à créer un outil de planification où en mettant une date de début et un temps (nombre de jours) j'obtiens une date de fin.

J'ai trouvé l'outil SERIE.JOUR.OUVRE mais j'ai un problème.

Tous nos vendredi ne sont que des demi-journées or avec SERIE.JOUR.OUVRE Excel calcule le vendredi comme un jour plein.

Comment faire pour qu'Excel me donne une date de fin en calculant les vendredi en 1/2 journée? Sachant, encore une fois, que je n'ai que la date de début et un temps (nombre de jours).

Cela fait pas mal de temps que je m'y arrache les cheveux et j'espère que vous pourrez m'aider.

Dans la mesure du possible une formule ou une fonction sur VBA serait parfait (j'aimerais ne pas avoir à appuyer sur un bouton à chaque fois ^^)

En vous remerciant par avance de votre aide je vous souhaite une bonne journée.

Suzu92

Bonjour à tous !

La formulation de votre besoin n'est pas très explicite....

Vendredi sera toujours le cinquième jour de la semaine. Que ce soit vendredi 12h ou vendredi 23h.

Pourriez-vous joindre un classeur représentatif avec quelques exemples manuels du résultat attendu ?

bonjour Suzu92, jfl,

=SERIE.JOUR.OUVRE.INTL(A1;B1+PLAFOND.MATH(NB.JOURS.OUVRES.INTL(A1;SERIE.JOUR.OUVRE.INTL(A1;B1);"1111011")/2;1))   ???
41vendredi.xlsx (14.70 Ko)

Bonjour Suzu92,

Je te conseille de faire une colonne dans un autre onglet avec toutes les dates sur les 5 ou 10 prochaines années. Dans une deuxième colonne à côté, tu notes le jour de la semaine "lundi, mardi..." etc. Dans une troisième colonne note 1 en face de chaque lundi, mardi, mercredi, jeudi, puis 0,5 en face de chaque vendredi, et 0 en face de chaque samedi, dimanche, jours fériés. Dans un quatrième colonne, calcules les valeurs cumulées de la colonne 3. Cela devrait être très simple avec l'incrémentation auto, (en tirant la poignée en bas à gauche de ta cellule) sauf pour les jours fériés ou tu devras mettre 0 à la main.

Cela te permettra de te passer de la formule serie.jour.ouvre et de calculer toi même la date de départ + le nombre de jours ouvrés avec ta contraintes des demi vendredi.

Voici comment je vois le calcul :

Formule recherchex pour trouver la valeur cumulée correspondantes à ta date de départ.

Additionne le résultat obtenu avec ton temps (nombre de jour)

Fait de nouveau une recherchex, dans l'autre sens cette fois, pour trouver la date correspondant au résultat de l'addition, qui sera donc la date de fin.

Tu peux jouer avec le critère "mode correspondance" de tes recherchex en mettant -1 (après le quatrième point virgule), ce qui aura pour effet de renvoyer le résultat inférieur le plus proche si pas de résultat exact.

Bien à toi.

bonjour, un nouveau essai

21vendredi.xlsb (23.29 Ko)

Bonjour à tous et merci pour toutes vos réponses.

JFL, voici un exemple de ce que j'ai fait (colonne en rouge) et de ce que je souhaiterai (colonne avec les date en vert).

LinkfromHyrule, j'ai peur que ta solution me fasse un fichier trop lourd car il y a déjà pas mal d'onglets (qui comportent des formules et macros)

Je suis en train de voir les autres réponses et je reviens vers vous.

Merci encore :)

Suzu92

15exemple.xlsx (14.10 Ko)

Bonjour à tous !

Pouvez-vous me dire comment vous déterminez la date du 15/3/2023 dans l'exemple ci-après ?

image

Ma méthode retourne 14/3/2023....

JFL,

J'ai cumulé les temps (au total je suis à 11.1 jours) en partant du 27/02 j'arrive bien au 15/03 avec mon calendrier (c'est le 0.1 qui est sur le 15/02) ^^.

Merci de votre aide,

Suzu92

Bonjour à tous !

J'ai cumulé les temps (au total je suis à 11.1 jours) en partant du 27/02 j'arrive bien au 15/03 avec mon calendrier (c'est le 0.1 qui est sur le 15/02) ^^.

Euh....... Je ne trouve nulle trace de "cumul" dans vos messages antérieurs....

Difficile pour nous de vous aider si nous ne connaissons pas les contraintes.

Donc un cumul.....

Sur quoi ? Sur quelle période ?

Ok désolée pour l'incompréhension.

A part la 1ère date de début, vous avez certainement remarquez, que la date de début suivante correspond à la date de fin de la ligne précédente.

Je pensais que cela permettais de faire le cumul.

Ainsi il n'y a pas de limite au cumul. Lorsque je veux repartir d'une nouvelle date (en cas de problème qui décalerai le début) je l'écrirai en manuelle.

Merci encore

Suzu92

re,

à mon avis 27/2 + 11.1 est aussi 15/3

12exemple-16.xlsb (22.68 Ko)

Bonjour à tous de nouveau !

Ok désolée pour l'incompréhension.

Vous confondez absence totale de rigueur et incompréhension....

Par ailleurs, vos explications sur les dates supposées se suivre sont fumeuses....

Dans ces conditions, je me retire.

Je vous souhaite néanmoins bon courage pour la résolution de votre problématique.

JFL,

Merci d'avoir pris le temps d'essayer.

Je me débrouillerai avec les autres propositions qui m'ont été apportées et de peut-être de futurs nouvelles idées ^^.

Bonne continuation.

Suzu92

BsAlv,

Je pense avoir compris d'où vient la différence entre le 14/03 et le 15/03 (sachant que d'après votre test, si je prends le cumul ça fonctionne).

Ci-joint le même fichier avec mon test.

Il s'agit d'une comparaison entre le tout simple date de début + temps et le résultat avec SERIE.JOUR.OUVRE.INTL des mêmes cellules.

J'obtiens bien la même date mais en format "nombre" on voit bien qu'il y a une différence.

J'ai l'impression que la fonction SERIE.JOUR.OUVRE.INTL ne donne pas une valeur exacte mais arrondi à l'inférieur (ce qui fausse la date final car le NB.JOUR.OUVRE ne prends plus le bon nombre).

Comment faire en sorte que le résultat soit le même dans les 2 cas? Peut-on faire en sorte que la fonction SERIE.JOUR.OUVRE.INTL donne le nombre exacte?

Merci d'avance de votre aide ^^.

Suzu92

18exemple-16.xlsb (18.81 Ko)

re,

avec des formules, c'est presque impossible, je crois, donc c'est avec VBA

Les jours de fériés sont maintenant chaque 15ème du mois (comme exemple) et puis en vert on a le début + la durée et en orange la fin + la heure (en decimal, le vendredi commence toujours à 0.50 parce qu'il ne vaut qu'un 1/2 jour).

Que pensez-vous ?

20exemple-16.xlsb (29.67 Ko)

Bonsoir,

Merci beaucoup pour votre temps et vos efforts.

Après avoir regardé le fichier (avec mes yeux de débutante en VBA) j'ai quelques questions et remarques.

J'ai constaté qu'en fonction des dates on peut avoir le dimanche comme date de fin (impossible en réalité). A quoi est-ce dû?

image

De plus lorsque je veux faire un test en changeant la 1ère date de début, le fichier se ferme directement.

Vous utilisez les termes "Delta"; "delta0"; "Datum"; "aHoliday" => Ceux sont des variables ? Comment sont-elles définies et à quoi correspondent elles sur l'Excel? (sauf aHoliday cela correspond aux jours fériés non?)

Enfin à quoi correspond l'onglet "Blad1" et les formules qui sont dedans?

Merci d'avance pour vos réponses et en attendant je vous souhaite une bonne soirée.

Suzu92

re,

cela est le résultat de calculer sans arrondir ! Maintenant, après le modif, l'arrondi est 4 digits, mais je pense, plus tard, que vous préfèrez 1 digit (donc un dixième d'une journée).

Maintenant ligne 43, on est jeudi (=do en néerlandais) 12/1 dans la demi-journée (ce 0.50 dans la colonne G) et on ajoute par erreur 1.0001 jours (au lieu de 1 pour, simulation de cette erreur d'arrondir). Donc le jeudi, il reste encore 0.5 et comme le vendredi ne compte que pour 0.5, à la fin du vendredi, il reste encore 0.0001 jours à faire = pour le lundi suivant. Après arrondir moins 1 sec, le résultat est le dimanche à 23:59:59 (uné journée = 1) au lieu du vendredi 23:59:59. Maintenant vous changez ce 1,0001 de la cellule E43 en 1 et voilà, le résultat est bien le vendredi au bout de cette journée. Conclusion : le vendredi 23:59:59 et le dimanche 23:59:59 sont virtuellement égal, une anomalie mathématique, mais comme vous le dites "impossible en réalité"

Donc après cette explication, la prochaine version arrondira 1 digit = dixièmes d'une journée pour éviter tout cela !

image

je n'ai pas une explication pour la fermeture du fichier, c'est mieux avec celui en PJ ?

PS. plus tard, il faut aussi supprimer ce "debug.print" dans la macro

17exemple-16.xlsb (28.60 Ko)

Bonjour BsAlv,

C'est fantastique!

J'ai refait un test ce matin sur mon fichier d'origine et en créant une nouvelle feuille de donnée j'ai pu avoir les bonnes dates ^^.

J'ai mis l'arrondi à 1 et ai enlevé le débug, comme conseillé, et tout fonctionne.

UN GRAND MERCI pour votre patience et expertise!

Bonne journée à vous!

Suzu92

merci,

une petite correction, je pense que cette version est mieux pour les vendredis, il y avait quelques erreurs, si le vendredi était la dernière journée et les bilan des jours était <0.5

18exemple-17.xlsb (28.12 Ko)
Rechercher des sujets similaires à "serie jours ouvres vendredi journee"