XL 2019 Calcul différence entre deux date

telemarrk

XLDnaute Occasionnel
Bonjour,

Je rencontre des difficultés avec une formule de calcul de dates.

Mon objectif est le suivant :

Calculer la différence entre les dates saisies dans les colonnes "Début" et "Fin". Afficher ce résultat dans la colonne "Reste".
Exclure du calcul toute période comprise entre le 01/05/2024 et le 31/10/2024.

Pourriez-vous m'aider à élaborer une formule qui prenne en compte ces critères ?

Merci
 

Pièces jointes

  • calcul.xlsx
    11.5 KB · Affichages: 11
Solution
Bonsoir telemarrk et djidji59430
une autre solution, avec la liste des jours fériés (sans ajouter donc le créneau interdit à ces jours), et en conservant la possibilité des modifier les dates du créneau interdit.
et même résultat que djidji pour la dernière valeur (sans donc les 01 et 11 novembre, fériés - du moins, en France)
S'il ne faut pas prendre en compte les jours fériés, il suffit de les enlever dans la formule (4ème argument de la formule NB.JOURS.OUVRES.INTL )

Jeannette

XLDnaute Junior
Bonsoir telemarrk et djidji59430
une autre solution, avec la liste des jours fériés (sans ajouter donc le créneau interdit à ces jours), et en conservant la possibilité des modifier les dates du créneau interdit.
et même résultat que djidji pour la dernière valeur (sans donc les 01 et 11 novembre, fériés - du moins, en France)
S'il ne faut pas prendre en compte les jours fériés, il suffit de les enlever dans la formule (4ème argument de la formule NB.JOURS.OUVRES.INTL )
 

Pièces jointes

  • calcul_telemark.xlsx
    13.1 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonjour à tous,

Plutôt que de se casser la tête avec des formules on peut utiliser une fonction VBA :
VB:
Function NbJours(deb As Range, fin As Range, debexclu As Range, finexclu As Range, Optional ferie As Range)
Dim dat As Date, test As Boolean
For dat = deb To fin
    test = Weekday(dat, 2) < 6
    If test Then If Not ferie Is Nothing Then test = Application.CountIf(ferie, dat) = 0
    If test Then test = dat < debexclu Or dat > finexclu
    If test Then NbJours = NbJours + 1
Next
End Function
Le code doit être impérativement dans un module standard.

Le dernier argument est facultatif.

A+
 

Pièces jointes

  • calcul.xlsm
    19.1 KB · Affichages: 6

Discussions similaires

Réponses
11
Affichages
697

Membres actuellement en ligne

Statistiques des forums

Discussions
313 902
Messages
2 103 391
Membres
108 631
dernier inscrit
tarek.kanaan