Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 )

telemarrk

XLDnaute Occasionnel
Bonjour fanfan38,

Merci pour ton aide, mais cela ne va pas, comme je l'ai dit plus haut, je souhaite ne pas tenir compte des dates entre le 01/05/2024 et le 31/10/2024. C'est pour cela que je trouve 7, il doit arrêter la différence au 30/04/2024.
 

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

telemarrk

XLDnaute Occasionnel
Je vous remercie tous pour vos contributions.

Bien que les trois solutions proposées soient efficaces, j'ai l'intention de privilégier la version suggérée par Jeannette, qui me semble la mieux adaptée à mon projet.

Encore Merci
 

Discussions similaires

Réponses
11
Affichages
697
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…