Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Additionner le nombre de jours entre deux dates, valeur maxi 30 jours

20 réponses
Avatar
Guido
Bonsoir =E0 vous tous,

voici un petit soucis, que je n'arrive pas mettre en formule.
Il s'agit d'additionner le nombre de jours exactes entre deux dates.
Mais o=F9 cela se corse pour moi, c'est que selon le mod=E8le ci-dessous,
le nombre de jours ne d=E9passe pas 30 jours pour un mois.

04.05.2009 31.05.2009 28
01.06.2009 30.06.2009 30
01.07.2009 31.07.2009 30
01.08.2009 02.08.2009 2

Et pour f=E9vrier, c'est un peu plus complexe (pour moi, surtout). voici
un exemple dont le r=E9sultat devrait donner ceci :

01.02.2009 28.02.2009 30
01.02.2009 27.02.2009 27

Pour les ann=E9es bissextiles, franchement.... l=E0 je suis encore plus
perdu.

Qui peut me donner un coup de main pour une formule.

Je vous en remercie d'avance.

Guido

10 réponses

1 2
Avatar
Sam
Bonjour, essaye ceci
=SI(JOUR(A3)=1;30;FIN.MOIS(A3;0)-A3+1)+SI(FIN.MOIS(B3;0)³;30;JOUR(B3))+JOURS360(FIN.MOIS(A3;0);FIN.MOIS(B3;0))-30

Cordialement
Michel dit "Sam"
Avatar
Guido
On 18 jan, 21:56, "Sam" wrote:
Bonjour, essaye ceci
=SI(JOUR(A3)=1;30;FIN.MOIS(A3;0)-A3+1)+SI(FIN.MOIS(B3;0)³;30;JOUR (B3))+JOURS360(FIN.MOIS(A3;0);FIN.MOIS(B3;0))-30

Cordialement
Michel dit "Sam"



Bonjour Isabelle, Bonjour Sam,

merci pour les interventions.

Isabelle, moi et VBa c'est comme qui dirait une histoire pas trop
nouvelle, mais c'est toujours la théorie du grand chaos. J'ai essayé
de mettre le code et il me demande lors du test de le nommer. Mais ce
que je vois c'est qu'il est déjà nommé.

Donc, la dessus, je te laisse le loisir de m'en dire plus.
(ce serait pour moi uniquement. Au boulot, c'est la parano avec les
codes venant de l'extérieur)

merci à toi.


Sam, la formule fonctionne clairement et bien, sauf pour le mois de
février (avec 28 ou 29 jours). le décompte du mois uniquement ne me
donne pas le résultat escompté. ex... 01.02.2010 au 27.02.2010 = 28
jours. La formule en compte 27. pour le mois complet il me donne soit
28 ou 29 et pas 30, résultat que je devrai avoir.

merci pour ton aide.

Guido
Avatar
isabelle
bonjour Guido,

=SI(ET(JOUR(A27)=1;MOIS(B27+1)<>MOIS(B27));MAX(JOURS360(A27;B27);30);SI(ET(MOIS(A27)<>MOIS(B27);MOIS(B27+1)<>MOIS(B27));JOURS360(DATE(ANNEE(A27);MOIS(A27)+1;1);B27)+(DATE(ANNEE(A27);MOIS(A27)+1;1)-A27);JOURS360(A27;B27)+(MOD(JOURS360(A27;B27);30)<>0)))

isabelle

Le 2010-01-19 07:46, Guido a écrit :
On 18 jan, 21:56, "Sam" wrote:

Bonjour, essaye ceci
=SI(JOUR(A3)=1;30;FIN.MOIS(A3;0)-A3+1)+SI(FIN.MOIS(B3;0)³;30;JOUR(B3))+JOURS360(FIN.MOIS(A3;0);FIN.MOIS(B3;0))-30

Cordialement
Michel dit "Sam"



Bonjour Isabelle, Bonjour Sam,

merci pour les interventions.

Isabelle, moi et VBa c'est comme qui dirait une histoire pas trop
nouvelle, mais c'est toujours la théorie du grand chaos. J'ai essayé
de mettre le code et il me demande lors du test de le nommer. Mais ce
que je vois c'est qu'il est déjà nommé.

Donc, la dessus, je te laisse le loisir de m'en dire plus.
(ce serait pour moi uniquement. Au boulot, c'est la parano avec les
codes venant de l'extérieur)

merci à toi.


Sam, la formule fonctionne clairement et bien, sauf pour le mois de
février (avec 28 ou 29 jours). le décompte du mois uniquement ne me
donne pas le résultat escompté. ex... 01.02.2010 au 27.02.2010 = 28
jours. La formule en compte 27. pour le mois complet il me donne soit
28 ou 29 et pas 30, résultat que je devrai avoir.

merci pour ton aide.

Guido



Avatar
michdenis
Voici une fonction personnalisé... ouais, j'ai vu plus bas que tu n'aimais pas
le VBA...

Dans un module standard, tu copies ceci :
et dans la cellule dont tu veux avoir le résultat :
tu écris : =NbJours(A1:A2)

'-------------------------------------------
Function NbJours(D As Range, F As Range)
Dim Total As Integer, T As Integer
Dim Nb As Integer, A As Integer

Nb = DateDiff("M", D, F)
If Nb < 1 Then
T = DateDiff("D", D, F) + 1
If T > 30 Then T = 30 Else: Total = T
Else
For A = 1 To Nb + 1
If A = 1 Then
T = DateDiff("D", D, DateSerial(Year(D), _
Month(D) + 1, 0)) + 1
If T > 30 Then T = 30 Else: Total = T
ElseIf A = Nb + 1 Then
T = DateDiff("D", DateSerial(Year(F), _
Month(F), 1), F) + 1
If T > 30 Then T = 30
Total = Total + T
Else
T = DateDiff("D", DateSerial(Year(D), _
Month(D) + A - 1, 1), DateSerial(Year(F), _
Month(D) + A, 0)) + 1
If T > 30 Then T = 30
Total = Total + T
End If
Next
End If
NbJours = Total
End Function
'-------------------------------------------



"Guido" a écrit dans le message de groupe de discussion :

Bonsoir Michdenis,

voici le fichier test en question. vous y trouverez deux tableau.

le premier correspond à ce que je devrai avoir au travail, l'autre
c'est celui que j'utilise pour contrôler les formules différentes.

A bientôt

Guido


On 18 jan, 17:02, "michdenis" wrote:
Tu devrais mettre un exemplaire (juste le tableau concerné)
sur cijoint.fr question d'illustrer la disposition de tes données.

"Guido" a écrit dans le message de groupe de discussion :

Oui, effectivement et ceci selon (j'ai les cellules exactes de mon
tableau) 4 lignes différentes, les dates se rapportant aux colonnes
spécifiques.

nb jours = F22 ; date du .... = H 22 ; date au .... = J22

la suite : F 24 ; etc...

malheureusement, je ne peux pas changer les dispositions des cellules
du tableau, n'étant pas le propriétaire du dit tableau.

merci d'avance pour vos lumières.

Guido

On 18 jan, 13:55, "michdenis" wrote:

> As-tu essayé ceci, si le but est d'évaluer
> le nombre de jours une ligne à la fois
> =SI((DATEDIF(A1;B1;"D")+1)>0;30;DATEDIF(A1;B1;"D")+1)

> "Guido" a écrit dans le message de groupe de discussion :
>
> Bonjour Michdenis et Sam,

> Je tiens à vous remercier pour votre intervention sur ma question. J'y
> ne serai pas arrivé.

> Michdenis, concernant votre réponse une validation par Ctrl + Maj +
> Enter ne m'est pas possible puisque les dates à calculer se trouve en
> fait sur les cellules disjointes et sur 3 lignes discontinues comme
> par ex. D16 {res} ; F16 {depuis}; I16 {jusqu'à}).
> Le résultat se trouve donc, avant la mention des dates.

> Concernant votre réponse Sam,

> La formule fonctionne super bien lorsque l'on se trouve confronté à
> des calculs de mois unique. Mais lorsque je place la formule, par
> exemple pour les dates du 04.05.2010 au 02.08.2010, il me donne 91
> jours complet au lieu de me donner la somme de 90 jours au total
> (réponse que je devrai avoir).

> Y a-t-il un moyen d'avoir le calcul, qu'il puisse me donner le
> résultat indifféremment pour un mois complet ou plusieurs mois
> consécutifs ?

> Merci d'avance.

> Guido

> On 17 jan, 10:57, "Sam" wrote:

> > Bonjour,
> > =SI(ET(FIN.MOIS(B1;0)±;FIN.MOIS(A1;-1)+1¡);30;B1-A1+1)
> > Cordialement
> > Michel dit "Sam"
> > "Guido" a écrit dans le message de news:
> >
> > Bonsoir à vous tous,

> > voici un petit soucis, que je n'arrive pas mettre en formule.
> > Il s'agit d'additionner le nombre de jours exactes entre deux dates.
> > Mais où cela se corse pour moi, c'est que selon le modèle ci-dessous,
> > le nombre de jours ne dépasse pas 30 jours pour un mois.

> > 04.05.2009 31.05.2009 28
> > 01.06.2009 30.06.2009 30
> > 01.07.2009 31.07.2009 30
> > 01.08.2009 02.08.2009 2

> > Et pour février, c'est un peu plus complexe (pour moi, surtout). voici
> > un exemple dont le résultat devrait donner ceci :

> > 01.02.2009 28.02.2009 30
> > 01.02.2009 27.02.2009 27

> > Pour les années bissextiles, franchement.... là je suis encore plus
> > perdu.

> > Qui peut me donner un coup de main pour une formule.

> > Je vous en remercie d'avance.

> > Guido- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -


Avatar
isabelle
voici l'exemple :
http://cjoint.com/?btoiV8O3JC

isabelle

Le 2010-01-19 08:01, isabelle a écrit :
bonjour Guido,

=SI(ET(JOUR(A27)=1;MOIS(B27+1)<>MOIS(B27));MAX(JOURS360(A27;B27);30);SI(ET(MOIS(A27)<>MOIS(B27);MOIS(B27+1)<>MOIS(B27));JOURS360(DATE(ANNEE(A27);MOIS(A27)+1;1);B27)+(DATE(ANNEE(A27);MOIS(A27)+1;1)-A27);JOURS360(A27;B27)+(MOD(JOURS360(A27;B27);30)<>0)))


isabelle

Le 2010-01-19 07:46, Guido a écrit :
On 18 jan, 21:56, "Sam" wrote:
Bonjour, essaye ceci
=SI(JOUR(A3)=1;30;FIN.MOIS(A3;0)-A3+1)+SI(FIN.MOIS(B3;0)³;30;JOUR(B3))+JOURS360(FIN.MOIS(A3;0);FIN.MOIS(B3;0))-30


Cordialement
Michel dit "Sam"


Bonjour Isabelle, Bonjour Sam,

merci pour les interventions.

Isabelle, moi et VBa c'est comme qui dirait une histoire pas trop
nouvelle, mais c'est toujours la théorie du grand chaos. J'ai essayé
de mettre le code et il me demande lors du test de le nommer. Mais ce
que je vois c'est qu'il est déjà nommé.

Donc, la dessus, je te laisse le loisir de m'en dire plus.
(ce serait pour moi uniquement. Au boulot, c'est la parano avec les
codes venant de l'extérieur)

merci à toi.


Sam, la formule fonctionne clairement et bien, sauf pour le mois de
février (avec 28 ou 29 jours). le décompte du mois uniquement ne me
donne pas le résultat escompté. ex... 01.02.2010 au 27.02.2010 = 28
jours. La formule en compte 27. pour le mois complet il me donne soit
28 ou 29 et pas 30, résultat que je devrai avoir.

merci pour ton aide.

Guido




Avatar
Sam
Bonjour,
nouvel essai :

=SI(JOUR(A8)=1;30;FIN.MOIS(A8;0)-A8+1)+SI(FIN.MOIS(B8;0)¸;30;JOUR(B8))+360*(ANNEE(B8)-ANNEE(A8))+30*(MOIS(B8)-MOIS(A8))-30

Cordialement
Michel dit "Sam"

"Guido" a écrit dans le message de news:

On 18 jan, 21:56, "Sam" wrote:
Bonjour, essaye ceci
=SI(JOUR(A3)=1;30;FIN.MOIS(A3;0)-A3+1)+SI(FIN.MOIS(B3;0)³;30;JOUR(B3))+JOURS360(FIN.MOIS(A3;0);FIN.MOIS(B3;0))-30

Cordialement
Michel dit "Sam"



Bonjour Isabelle, Bonjour Sam,

merci pour les interventions.

Isabelle, moi et VBa c'est comme qui dirait une histoire pas trop
nouvelle, mais c'est toujours la théorie du grand chaos. J'ai essayé
de mettre le code et il me demande lors du test de le nommer. Mais ce
que je vois c'est qu'il est déjà nommé.

Donc, la dessus, je te laisse le loisir de m'en dire plus.
(ce serait pour moi uniquement. Au boulot, c'est la parano avec les
codes venant de l'extérieur)

merci à toi.


Sam, la formule fonctionne clairement et bien, sauf pour le mois de
février (avec 28 ou 29 jours). le décompte du mois uniquement ne me
donne pas le résultat escompté. ex... 01.02.2010 au 27.02.2010 = 28
jours. La formule en compte 27. pour le mois complet il me donne soit
28 ou 29 et pas 30, résultat que je devrai avoir.

merci pour ton aide.

Guido
Avatar
isabelle
bonne approche, Michel, c'est tout bon,

isabelle

Le 2010-01-19 15:04, Sam a écrit :
Michel dit "Sam"



Avatar
Guido
Bonjour Michel (Sam)

Ho malheur, j'ai essayé de mettre la formule au boulot, et je n'arrive
pas à la valider. Est-ce parce qu'au boulot je suis un utilisateur de
Excel 2003 ? (erreur signalée .... 1;30;fin...) le 30 m'est notifié
comme erreur dans la formule.

Franchement.... je suis dégouté ,.... snifff. avec 2007, c'est
parfait.

Bonjour Isabelle,

Je ne pourrai donner des nouvelles que demain (après avoir testé les
vôtre)

A bientôt

Guido



On 19 jan, 21:26, isabelle wrote:
bonne approche, Michel, c'est tout bon,

isabelle

Le 2010-01-19 15:04, Sam a crit :

> Michel dit "Sam"


Avatar
Sam
Bonjour,
je suis sous Excel 2003 et je n'ai pas d'erreur de formule
Cordialement
Michel dit "Sam"

"Guido" a écrit dans le message de news:

Bonjour Michel (Sam)

Ho malheur, j'ai essayé de mettre la formule au boulot, et je n'arrive
pas à la valider. Est-ce parce qu'au boulot je suis un utilisateur de
Excel 2003 ? (erreur signalée .... 1;30;fin...) le 30 m'est notifié
comme erreur dans la formule.

Franchement.... je suis dégouté ,.... snifff. avec 2007, c'est
parfait.

Bonjour Isabelle,

Je ne pourrai donner des nouvelles que demain (après avoir testé les
vôtre)

A bientôt

Guido



On 19 jan, 21:26, isabelle wrote:
bonne approche, Michel, c'est tout bon,

isabelle

Le 2010-01-19 15:04, Sam a crit :

> Michel dit "Sam"


Avatar
Guido
Bonjour Isabelle,
Bonjour MIchel,

Je vous remercie tout deux pour l'effort consenti à me donner un coup
de main pour cette formule.

A bientôt

Guido




On 20 jan, 22:22, "Sam" wrote:
Bonjour,
je suis sous Excel 2003 et je n'ai pas d'erreur de formule
Cordialement
Michel dit "Sam"

"Guido" a écrit dans le message de news:

Bonjour Michel (Sam)

Ho malheur, j'ai essayé de mettre la formule au boulot, et je n'arrive
pas à la valider. Est-ce parce qu'au boulot je suis un utilisateur de
Excel 2003 ? (erreur signalée  .... 1;30;fin...) le 30 m'est notifi é
comme erreur dans la formule.

Franchement.... je suis dégouté ,.... snifff. avec 2007, c'est
parfait.

Bonjour Isabelle,

Je ne pourrai donner des nouvelles que demain (après avoir testé les
vôtre)

A bientôt

Guido

On 19 jan, 21:26, isabelle wrote:

> bonne approche, Michel, c'est tout bon,

> isabelle

> Le 2010-01-19 15:04, Sam a crit :

> > Michel dit "Sam"


1 2