Calcul Jour par Mois entre 2 dates
Résolu/Fermé
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
-
Modifié le 30 juil. 2018 à 14:21
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 - 31 juil. 2018 à 09:38
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 - 31 juil. 2018 à 09:38
A voir également:
- Calcul Jour par Mois entre 2 dates
- Calcul moyenne excel - Guide
- Mettre à jour ses pilotes - Guide
- 2 comptes whatsapp - Guide
- Logiciel calcul plancher bois gratuit - Télécharger - Architecture & Déco
- 2 ecran pc - Guide
4 réponses
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
Modifié le 30 juil. 2018 à 14:23
Modifié le 30 juil. 2018 à 14:23
Bonjour,
commence par regarder les liens sous ta question
Que tu aurais eu en commençant par une recherche ;-)
eric
commence par regarder les liens sous ta question
Que tu aurais eu en commençant par une recherche ;-)
eric
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
Modifié le 30 juil. 2018 à 15:54
Modifié le 30 juil. 2018 à 15:54
Ok merci.
Je vais donc essayer de bricoler quelque chose en me basant sur les anciens sujets et sur mes recherches, je reviendrai pour demander de l'aide et/ou apporter ma solution.
Bonne journée,
Je vais donc essayer de bricoler quelque chose en me basant sur les anciens sujets et sur mes recherches, je reviendrai pour demander de l'aide et/ou apporter ma solution.
Bonne journée,
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
30 juil. 2018 à 18:23
30 juil. 2018 à 18:23
Voici ce que j'ai bricolé si jamais ça peut aider quelqu'un : https://www.cjoint.com/c/HGEqt7dCJGV
Il y a certainement une meilleure façon de faire, on peut certainement simplifier mes formules mais l'essentiel est là : ça fonctionne pour tous mes cas particuliers.
Je laisse le sujet encore un peu ouvert, si jamais des gens qui passent pas là ont des conseils pour améliorer mes formules je suis preneur car là ça devient compliqué de s'y retrouver, même pour moi
Bonne fin de journée
Il y a certainement une meilleure façon de faire, on peut certainement simplifier mes formules mais l'essentiel est là : ça fonctionne pour tous mes cas particuliers.
Je laisse le sujet encore un peu ouvert, si jamais des gens qui passent pas là ont des conseils pour améliorer mes formules je suis preneur car là ça devient compliqué de s'y retrouver, même pour moi
Bonne fin de journée
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
Modifié le 30 juil. 2018 à 19:06
Modifié le 30 juil. 2018 à 19:06
Une proposition :
Syntaxe :
debut et fin sont les dates.
mois peut être passé de 2 manière :
- une date quelconque du mois voulu
- le n° de mois dans la période (mois debut=1, 2e mois = 2, etc)
=nbJMois($A2;$B2;E$1)
=nbJMois($A2;$B2;1/6/18)
=nbJMois($A2;$B2;"juin-18"))
ou
=nbJMois($A2;$B2;1)
J'ai fait au plus simple sans option pour ôter les we comme ce n'était pas spécifié.
https://www.cjoint.com/c/HGEqCpEFalM
eric
Edit : modif pour retourner 0 en cas de jours négatifs. Fichier joint sans la modif
Function nbJMois(debut As Date, Fin As Date, mois) As Long Dim dat1 As Date If IsDate(mois) Then 'mois voulu fourni sous forme de date dat1 = DateSerial(Year(mois), Month(mois), 1) Else ' mois fourni sous forme d'offset (mois =1 pour mois de Debut) dat1 = DateAdd("m", mois - 1, DateSerial(Year(debut), Month(debut), 1)) End If nbJMois = Application.Max(0, Application.Min(DateAdd("m", 1, dat1) - 1, Fin) - Application.Max(dat1, debut) + 1) End Function
Syntaxe :
=nbJMois(debut, fin, mois)
debut et fin sont les dates.
mois peut être passé de 2 manière :
- une date quelconque du mois voulu
- le n° de mois dans la période (mois debut=1, 2e mois = 2, etc)
=nbJMois($A2;$B2;E$1)
=nbJMois($A2;$B2;1/6/18)
=nbJMois($A2;$B2;"juin-18"))
ou
=nbJMois($A2;$B2;1)
J'ai fait au plus simple sans option pour ôter les we comme ce n'était pas spécifié.
https://www.cjoint.com/c/HGEqCpEFalM
eric
Edit : modif pour retourner 0 en cas de jours négatifs. Fichier joint sans la modif
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
Modifié le 30 juil. 2018 à 19:35
Modifié le 30 juil. 2018 à 19:35
version avec paramètre optionnel pour ne pas compter jour de début et/ou de fin,
et annulation de l'erreur #VALEUR si une date n'est pas conforme (retourne 0) :
https://www.cjoint.com/c/HGErGmCXgfM
Villette54, ta formule en B27 devient :
à tirer vers le bas et vers la droite
eric
et annulation de l'erreur #VALEUR si une date n'est pas conforme (retourne 0) :
Function nbJMois(debut, Fin, mois, Optional jDeb As Boolean = True, Optional jFin As Boolean = True) As Long Dim dat1 As Date If Not IsDate(debut) Or Not IsDate(Fin) Then nbJMois = 0: Exit Function If Not jDeb Then debut = debut + 1 ' jour debut non compté If Not jFin Then Fin = Fin - 1 ' jour fin non compté If IsDate(mois) Then 'mois voulu fourni sous forme de date dat1 = DateSerial(Year(mois), Month(mois), 1) Else ' mois fourni sous forme de n° de mois dans la période dat1 = DateAdd("m", mois - 1, DateSerial(Year(debut), Month(debut), 1)) End If If Month(dat1) = Month(Fin) And Not jFin Then nbJMois = nbJMois - 1 nbJMois = Application.Min(DateAdd("m", 1, dat1) - 1, Fin) - Application.Max(dat1, debut) + 1 nbJMois = Application.Max(0, nbJMois) End Function
https://www.cjoint.com/c/HGErGmCXgfM
Villette54, ta formule en B27 devient :
=nbjmois($D2;$E2;B$25;FAUX;FAUX)
à tirer vers le bas et vers la droite
eric
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
31 juil. 2018 à 09:38
31 juil. 2018 à 09:38
Bonjour,
Merci pour cette proposition, je vais regarder ça de plus près pour essayer de comprendre le fonctionnement. Je connais les fonctions personnalisées mais j'ai toujours beaucoup de mal à les utiliser.
Quoi qu'il en soit merci et bonne journée,
Merci pour cette proposition, je vais regarder ça de plus près pour essayer de comprendre le fonctionnement. Je connais les fonctions personnalisées mais j'ai toujours beaucoup de mal à les utiliser.
Quoi qu'il en soit merci et bonne journée,
Modifié le 30 juil. 2018 à 14:29
J'ai fais une recherche et je suis tombé sur le sujet "Nombre de jours par mois entre deux dates"
Mais celui-ci datant un peu et Excel ayant eu des mises à jour depuis je cherchais à savoir si une solution plus simple est désormais disponible.
Mes recherches n'ayant rien donné, voilà pourquoi je suis venu poser directement la question
Modifié le 30 juil. 2018 à 14:52
Il faut le calculer à base de min et max.
Ou alors faire une fonction personnalisée en vba
eric