Date de fin avec 2.5 de week-end

Résolu/Fermé
MAH1311 Messages postés 19 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 2 décembre 2017 - 27 oct. 2017 à 12:50
MAH1311 Messages postés 19 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 2 décembre 2017 - 30 oct. 2017 à 12:36
Bonjour tout le monde,

J'aimerai définir la date de fin de mon projet avec un week-end de 2.5 jours (c'est-à-dire vendredi après-midi, samedi toute la journée et dimanche toute la journée).

J'ai utilisé la fonction serie.jour.ouvre.intl et j'ai réussi à enlever juste le samedi et le dimanche mais pas le vendredi après-midi.

Merci de votre aide.

MAH

1 réponse

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
Modifié le 27 oct. 2017 à 13:48
Bonjour

Voilà une fonction personnalisée à mettre dans un module de l'éditeur VBA
(ALT+F11 pour ouvrir éditeur - Insertion - Module - copier coller la macro dans la page et fermer l'éditeur)
Function finproj(debut As Date, duree As Integer)
datef = debut
Do Until tot >= duree
If Weekday(datef, 2) < 5 Then tot = tot + 1
If Weekday(datef, 2) = 5 Then tot = tot + 0.5
datef = datef + 1
Loop
finproj = datef - 1
End Function


La macro s'emploie alors comme nimporte quelle fonction avec la syntaxe :
=finproj(cellule de la date de debut;nombre de jours du projet)
exemple avec la date en B2 et un projet de 12 jours :
=finproj(B2;12)

Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
1
MAH1311 Messages postés 19 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 2 décembre 2017
27 oct. 2017 à 20:59
Bonsoir Via

Merci pour votre réponse. c'est super ça marche. J'ai découvert VBA grâce à vous :)

Désolé, j'ai oublié de préciser dans mon precedent message qu'il faut aussi enlever les "jours fériés" sachant que ces jours fériés sont enregistrés sur une plage de cellule. Je vous remercie de votre réponse.

Cdlt,

Mah
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703 > MAH1311 Messages postés 19 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 2 décembre 2017
Modifié le 27 oct. 2017 à 23:25
Re,

J'aurai du y penser !
Voilà la macro pour en tenir compte, à adapter selon ton fichier (la 1ere instruction IF est faite pour une plage des jours féries nommée feries (Range "feries") et située dans la 2eme feuille du classeur (Sheets(2) )donc changer les références dans l'instruction si nécessaire)
Function finproj(debut As Date, duree As Integer)
datef = debut
Do Until tot >= duree
If Application.WorksheetFunction.CountIf(Sheets(2).Range("feries"), datef) = 0 Then
If Weekday(datef, 2) < 5 Then tot = tot + 1
If Weekday(datef, 2) = 5 Then tot = tot + 0.5
End If
datef = datef + 1
Loop
finproj = datef - 1
End Function

Cdlmnt
Via
0
MAH1311 Messages postés 19 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 2 décembre 2017
30 oct. 2017 à 12:36
Merci ça a fonctionné :)
0