Date de fin avec 2.5 de week-end

Résolu
MAH1311 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
MAH1311 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

1 réponse

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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   Statut Membre Dernière intervention  
 
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 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > MAH1311 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Merci ça a fonctionné :)
0