Compter les differents jours entre deux dates

Bonjour,

Je cherche à compter le nombre de jour différents entre deux dates d'après un calendrier établi.

22calendrier.xlsm (590.02 Ko)

Dans le fichier joint, dans l'onglet contrat, il faut saisir la date de début et celle de fin d'accueil en B1 et B2. Ensuite cocher les différents jours d'accueil souhaités et obtenir le nombre de jours correspondant d'après l'onglet calendrier.

Jusque là pas de problème, ça bloque quand j'essaye de prendre en compte les jours de congés renseignés en bleu dans le calendrier.

J'ai fais deux test en D5 et D6 mais ça ne marche pas. En D5 ça fonctionne mais ne prend pas en compte les jours de congés. Et en D6 ça fonctionne mais prend en compte tout les jours de congés de l'année et pas ceux de l'intervalle renseigné.

Merci par avance pour votre aide !

Bonjour,

Intéressant ton fichier excel, et chiadé !

Je te proposerais bien ceci :

  • restructurer un poil ton calendrier en mettant les dates au format jj au lieu des n° 1 à 28 ... 31
  • ajouter à ta fonction Function Congés(Zne As Range, d As Byte) 2 paramètres qui sont début et fin de période (B1 et B2)
  • réduire Zne à E5_____ au lieu de D5______ et tester si le cellule.offset(0,-1) est incluse dans la plage B1:B2

Comme j'ai vu que les dates étaient déjà en colonnes E et consorts, il n'est pas nécessaire de restructurer le calendrier

En incluant le début et la fin de la période, ta fonction serait :

Function Congés(Zne As Range, debut As Range, fin As Range, d As Byte)
Dim Cell As Range
Congés = 0
    Application.Volatile
    For Each Cell In Zne
        If Cell.Interior.ColorIndex = 24 _
            And Cell.Value >= debut.Value _
            And Cell.Value <= fin.Value Then
                If Weekday(CDate(Cell), 2) = d Then Congés = Congés + 1
        End If
    Next
End Function

Avec cela, la fonction Congés fonctionne, pour le reste à vérifier car je me suis focalisé sur cette dernière ...

28calendrier.xlsm (590.44 Ko)

Bonjour et merci pour votre aide !

De mon coté cela ne fonctionne pas et la fonction met en defaut le calcul du ombre de jour dans le calendrier... Une idée ?

Encore merci !

Bonjour,

Il suffit semble t 'il de modifier la formule.

=SI(C5=VRAI;NB.JOURS.OUVRES.INTL($B$1;$B$2;G5;FERIES)-congés('2017-2018'!$D$5:$AL$35;$B$1;$B$2;1);0)

Bonjour Steelson.

Bonjour Jean-Eric,

je pressentais que cette formule était aussi utilisée ailleurs !


fmartini a écrit :

Bonjour et merci pour votre aide !

De mon coté cela ne fonctionne pas et la fonction met en defaut le calcul du ombre de jour dans le calendrier... Une idée ?

Encore merci !

Tu rajoutes les bornes ... ex en E43

=NB.JOURS.OUVRES.INTL(E$5;E$34;$A43;FERIES)-congés(E$5:E$34;E$5;E$34;1)

Bon si j'ai un peu d etemps, je vais passer ces 2 paramètres en optionnel et ils prendront alors les valeurs extrêmes de la zone !

OK merci super j'ai compris !

Merci !!!

Je vais quand même prendre un peu de temps pour mettre ces paramètres en optionnel

et asservir le calendrier au nom de l'onglet !! parce que ton fichier est très bien fait et ce serait dommage de se priver de quelques raffinements...

Je me suis fait plaisir.

La fonction comporte maintenant les paramètres de plage en option, cela n'altère donc pas le calendrier.

Le calendrier est "auto", à savoir que si tu mets comme nom d'onglet 2019-2020, ce sera le calendrier sept 2019 à août 2020 !

En espérant ne pas avoir fait d'erreurs !!

18calendrier.xlsm (600.52 Ko)

J'ai aussi apporté la correction de Jean-Eric que j'avais zappée !

=SI(C5=VRAI;NB.JOURS.OUVRES.INTL($B$1;$B$2;G5;FERIES)-congés('2017-2018'!$D$5:$AL$35;LIGNE()-4;$B$1;$B$2);0)

que tu peux aussi tirer vers le bas car j'ai remplacé le n° du jour par LIGNE()-4

10calendrier.xlsm (600.48 Ko)

@ fmartini

Je vois que tu as aussi posté d'autres questions depuis cette réponse.

Si celle-ci te convient, =>

Bonjour !

Oui merci beaucoup pour votre aide c'est parfait tt fonctionne nickel !

Je galère maintenant avec mon échéancier

Encore merci !

Rechercher des sujets similaires à "compter differents jours entre deux dates"