OVH Cloud OVH Cloud

30e de mois - calcule de période entre 2 dates

10 réponses
Avatar
Bulle
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la solution
était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de mon
client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se calculer
ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du 01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle

10 réponses

Avatar
Jac
... voir la fonction JOURS360...

...qui renvoie le nombre de jours compris entre deux dates sur la base
d'une année de 360 jours (12 mois de 30 jours), qui est utilisée dans
certains calculs comptables. Utilisez cette fonction pour le calcul des
paiements si votre système comptable est basé sur 12 mois de 30 jours.

Si elle n'est pas dispo, Outils / Macro complémentaire / Utilitaire
d'analyse.

On en reparle quand tu veux.

Jac


Bulle a formulé ce dimanche :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la solution
était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de mon
client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se calculer
ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du 01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle


Avatar
Bulle
Bonjour Jac,

Merci de ta réponse, cette fonction m'aurait bien plu mais elle ne donne pas
un résultat qui correspond pas au besoin du client :o(
C'est assez particulier, mine de rien ;o)

Bonne fin de week end et encore meci.
Bulle


"Jac" a écrit dans le message de
news:
... voir la fonction JOURS360...

...qui renvoie le nombre de jours compris entre deux dates sur la base
d'une année de 360 jours (12 mois de 30 jours), qui est utilisée dans
certains calculs comptables. Utilisez cette fonction pour le calcul des
paiements si votre système comptable est basé sur 12 mois de 30 jours.

Si elle n'est pas dispo, Outils / Macro complémentaire / Utilitaire
d'analyse.

On en reparle quand tu veux.

Jac


Bulle a formulé ce dimanche :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la solution
était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de mon
client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se calculer
ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du
01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle






Avatar
Jac
... je suis désolé, mais as tu lu l'aide et testé la formule ?

Je n'ai pas l'impression d'être vraiment loin du compte : pour les mois
complets, il n'y a que février qui pointe à 29 jours et pour le tableau
2, il n'y a que 15/1 - 31/1 (exception client) et 20/2 - 31/3 (fin
février / même problème avec février que dans le tableau 1) qui sont à
16 (17 attendu) et 41 (40 attendu).
Tout le reste correspond aux souhaits du client.

La formule =JOURS360(A12;B12;VRAI)+1


Le 29/11/2009, Bulle a supposé :
Bonjour Jac,

Merci de ta réponse, cette fonction m'aurait bien plu mais elle ne donne pas
un résultat qui correspond pas au besoin du client :o(
C'est assez particulier, mine de rien ;o)

Bonne fin de week end et encore meci.
Bulle


"Jac" a écrit dans le message de
news:
... voir la fonction JOURS360...

...qui renvoie le nombre de jours compris entre deux dates sur la base
d'une année de 360 jours (12 mois de 30 jours), qui est utilisée dans
certains calculs comptables. Utilisez cette fonction pour le calcul des
paiements si votre système comptable est basé sur 12 mois de 30 jours.

Si elle n'est pas dispo, Outils / Macro complémentaire / Utilitaire
d'analyse.

On en reparle quand tu veux.

Jac


Bulle a formulé ce dimanche :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la solution
était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de mon
client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se calculer
ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du 01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle






Avatar
isabelle
bonjour Bulle,

http://cjoint.com/?lEeUkxMiDL

Function dd(a As Range, b As Range) As Integer
ff = Evaluate("Day(FIN.MOIS(" & b.Address & ", 0))")
Select Case Month(b) - Month(a)
Case Is = 0
Select Case Day(b)
Case ff: If Day(a) = 1 Then m1 = 30 Else m1 = Day(b) - Day(a) + 1
Case Else: m1 = Day(b) - Day(a) + 1
End Select
Case Else:
m1 = 0
If Day(b) = ff Then ma1 = 30 Else: ma1 = Day(b)
If Day(a) = 1 Then ma2 = 30 Else: ma2 = Evaluate("Day(FIN.MOIS(" &
a.Address & ", 0))") - Day(a) + 1
m2 = (Month(b) - Month(a) - 1) * 30
End Select
dd = m1 + ma1 + ma2 + m2
End Function

isabelle

Bulle a écrit :
Bonjour Jac,

Merci de ta réponse, cette fonction m'aurait bien plu mais elle ne
donne pas un résultat qui correspond pas au besoin du client :o(
C'est assez particulier, mine de rien ;o)

Bonne fin de week end et encore meci.
Bulle


"Jac" a écrit dans le message de
news:
... voir la fonction JOURS360...

...qui renvoie le nombre de jours compris entre deux dates sur la
base d'une année de 360 jours (12 mois de 30 jours), qui est utilisée
dans certains calculs comptables. Utilisez cette fonction pour le
calcul des paiements si votre système comptable est basé sur 12 mois
de 30 jours.

Si elle n'est pas dispo, Outils / Macro complémentaire / Utilitaire
d'analyse.

On en reparle quand tu veux.

Jac


Bulle a formulé ce dimanche :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la
solution était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de
mon client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se
calculer ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du
01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des
casse-têtes chinois... ;o)

Bulle









Avatar
FS
Bonjour,

> Mon tableau joint devrait aider à être plus claire que l'autre fois.

Les critères des calculs sont en effet plus clairs pour moi (en réponse
peut-être à ma demande du 30/10 ?).
Je te propose cette formule :

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

Ton fichier incluant ce nouvel essai :

http://www.cijoint.fr/cjlink.php?file=cj200911/cijb0ogeYc.xls

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Bulle a écrit :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la
solution était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de mon
client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se calculer
ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du 01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle


Avatar
Bulle
Bonjour et merci de la réponse.

J'ai testé avec l'argument vrai et en additionnant 1, voui.
Le résultat ne correspond pas précisément aux souhaits du client.
Pour exemple ; du 15/01/2008 au 31/01/2008, le résultat de la fonction
JOURS360 donne 16 ; le client calcule 17 jours.

Ca aurait été bien plus simple et ça m'aurait bien plu :o)
Bonne soirée.
Bulle.


"Jac" a écrit dans le message de
news:%
... je suis désolé, mais as tu lu l'aide et testé la formule ?

Je n'ai pas l'impression d'être vraiment loin du compte : pour les mois
complets, il n'y a que février qui pointe à 29 jours et pour le tableau 2,
il n'y a que 15/1 - 31/1 (exception client) et 20/2 - 31/3 (fin février /
même problème avec février que dans le tableau 1) qui sont à 16 (17
attendu) et 41 (40 attendu).
Tout le reste correspond aux souhaits du client.

La formule =JOURS360(A12;B12;VRAI)+1


Le 29/11/2009, Bulle a supposé :
Bonjour Jac,

Merci de ta réponse, cette fonction m'aurait bien plu mais elle ne donne
pas un résultat qui correspond pas au besoin du client :o(
C'est assez particulier, mine de rien ;o)

Bonne fin de week end et encore meci.
Bulle


"Jac" a écrit dans le message de
news:
... voir la fonction JOURS360...

...qui renvoie le nombre de jours compris entre deux dates sur la base
d'une année de 360 jours (12 mois de 30 jours), qui est utilisée dans
certains calculs comptables. Utilisez cette fonction pour le calcul des
paiements si votre système comptable est basé sur 12 mois de 30 jours.

Si elle n'est pas dispo, Outils / Macro complémentaire / Utilitaire
d'analyse.

On en reparle quand tu veux.

Jac


Bulle a formulé ce dimanche :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la
solution était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de
mon client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se
calculer ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du
01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle










Avatar
Bulle
WOW !
Voilà Super Isabelle !
Grand merci de ta réponse.
A vrai dire, je vais me la placer de côté pour l'étudier ; le client
souhaite une formule sans utiliser de VBA...

Bonne fin de soirée à toi et encore merci.
Bulle


"isabelle" a écrit dans le message de
news:OLazz%
bonjour Bulle,

http://cjoint.com/?lEeUkxMiDL

Function dd(a As Range, b As Range) As Integer
ff = Evaluate("Day(FIN.MOIS(" & b.Address & ", 0))")
Select Case Month(b) - Month(a)
Case Is = 0
Select Case Day(b)
Case ff: If Day(a) = 1 Then m1 = 30 Else m1 = Day(b) - Day(a) + 1
Case Else: m1 = Day(b) - Day(a) + 1
End Select
Case Else:
m1 = 0
If Day(b) = ff Then ma1 = 30 Else: ma1 = Day(b)
If Day(a) = 1 Then ma2 = 30 Else: ma2 = Evaluate("Day(FIN.MOIS(" &
a.Address & ", 0))") - Day(a) + 1
m2 = (Month(b) - Month(a) - 1) * 30
End Select
dd = m1 + ma1 + ma2 + m2
End Function

isabelle

Bulle a écrit :
Bonjour Jac,

Merci de ta réponse, cette fonction m'aurait bien plu mais elle ne donne
pas un résultat qui correspond pas au besoin du client :o(
C'est assez particulier, mine de rien ;o)

Bonne fin de week end et encore meci.
Bulle


"Jac" a écrit dans le message de
news:
... voir la fonction JOURS360...

...qui renvoie le nombre de jours compris entre deux dates sur la base
d'une année de 360 jours (12 mois de 30 jours), qui est utilisée dans
certains calculs comptables. Utilisez cette fonction pour le calcul des
paiements si votre système comptable est basé sur 12 mois de 30 jours.

Si elle n'est pas dispo, Outils / Macro complémentaire / Utilitaire
d'analyse.

On en reparle quand tu veux.

Jac


Bulle a formulé ce dimanche :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la
solution était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de
mon client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se
calculer ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du
01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle











Avatar
Bulle
Bonjour Frédéric,

Et bien ça marche ! Que du bonheur !
Oui, c'est bien parce que tu as demandé plus de clarté que je voulais
reformuler ma demande, et en voyant aussi qu'on pouvait envoyer des fichiers
avec cijoint, c'était plus facile ;o))

Tu utilises la fonction MOD... je vais regarder de plus près...

Un grand merci à toi de ma part et de mon client quand je vais lui envoyer
la solution.
Participes-tu au prochain dîner MPFE ?

Bonne fin de soirée.
Bulle :o)


"FS" a écrit dans le message de
news:OPxJY%
Bonjour,

> Mon tableau joint devrait aider à être plus claire que l'autre fois.

Les critères des calculs sont en effet plus clairs pour moi (en réponse
peut-être à ma demande du 30/10 ?).
Je te propose cette formule :

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

Ton fichier incluant ce nouvel essai :

http://www.cijoint.fr/cjlink.php?file=cj200911/cijb0ogeYc.xls

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Bulle a écrit :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la solution
était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de mon
client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se calculer
ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du
01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle





Avatar
FS
Bonsoir,

> Et bien ça marche !

Bonne nouvelle !

> Participes-tu au prochain dîner MPFE ?

Non, je ne pourrai pas, je n'ai pas vu passer l'annonce du COIN et je
n'ai pris connaissance de la date que trop tard.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Bulle a écrit :
Bonjour Frédéric,

Et bien ça marche ! Que du bonheur !
Oui, c'est bien parce que tu as demandé plus de clarté que je voulais
reformuler ma demande, et en voyant aussi qu'on pouvait envoyer des
fichiers avec cijoint, c'était plus facile ;o))

Tu utilises la fonction MOD... je vais regarder de plus près...

Un grand merci à toi de ma part et de mon client quand je vais lui
envoyer la solution.
Participes-tu au prochain dîner MPFE ?

Bonne fin de soirée.
Bulle :o)


"FS" a écrit dans le message de
news:OPxJY%
Bonjour,

> Mon tableau joint devrait aider à être plus claire que l'autre fois.

Les critères des calculs sont en effet plus clairs pour moi (en
réponse peut-être à ma demande du 30/10 ?).
Je te propose cette formule :

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


Ton fichier incluant ce nouvel essai :

http://www.cijoint.fr/cjlink.php?file=cj200911/cijb0ogeYc.xls

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Bulle a écrit :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la
solution était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de
mon client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se
calculer ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du
01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle








Avatar
Jac
...eh bien, il ne reste plus qu'à rajouter deux conditions et l'affaire
est dans le sac.

Bulle avait écrit le 30/11/2009 :
Bonjour et merci de la réponse.

J'ai testé avec l'argument vrai et en additionnant 1, voui.
Le résultat ne correspond pas précisément aux souhaits du client.
Pour exemple ; du 15/01/2008 au 31/01/2008, le résultat de la fonction
JOURS360 donne 16 ; le client calcule 17 jours.

Ca aurait été bien plus simple et ça m'aurait bien plu :o)
Bonne soirée.
Bulle.


"Jac" a écrit dans le message de
news:%
... je suis désolé, mais as tu lu l'aide et testé la formule ?

Je n'ai pas l'impression d'être vraiment loin du compte : pour les mois
complets, il n'y a que février qui pointe à 29 jours et pour le tableau 2,
il n'y a que 15/1 - 31/1 (exception client) et 20/2 - 31/3 (fin février /
même problème avec février que dans le tableau 1) qui sont à 16 (17
attendu) et 41 (40 attendu).
Tout le reste correspond aux souhaits du client.

La formule =JOURS360(A12;B12;VRAI)+1


Le 29/11/2009, Bulle a supposé :
Bonjour Jac,

Merci de ta réponse, cette fonction m'aurait bien plu mais elle ne donne
pas un résultat qui correspond pas au besoin du client :o(
C'est assez particulier, mine de rien ;o)

Bonne fin de week end et encore meci.
Bulle


"Jac" a écrit dans le message de
news:
... voir la fonction JOURS360...

...qui renvoie le nombre de jours compris entre deux dates sur la base
d'une année de 360 jours (12 mois de 30 jours), qui est utilisée dans
certains calculs comptables. Utilisez cette fonction pour le calcul des
paiements si votre système comptable est basé sur 12 mois de 30 jours.

Si elle n'est pas dispo, Outils / Macro complémentaire / Utilitaire
d'analyse.

On en reparle quand tu veux.

Jac


Bulle a formulé ce dimanche :
Bonjour à tous,

Je reviens vers vous pour un problème posé le mois dernier où la
solution était presque trouvée.
Voici un fichier qui reprend 3 solutions, avec en plus le souhait de mon
client.
http://www.cijoint.fr/cjlink.php?file=cj200911/cij4FNBG58.xls

Le problème est un calcul de période entre 2 dates, qui doit se calculer
ainsi :

1. - tout mois ENTIER doit compter 30 JOURS, quel que soit le mois (de
janvier à décembre, février compris)
exemples :
01/01/08 au 31/01/08 = 30
01/04/08 au 30/04/08 = 30...
et en 2009 du 01/02/09 au 28/02/09 = 30 car le mois est entier en 2009
sinon en 2008 il aurait été compté entier si la période allait du
01/02/08
au 29/02/08

2. - si le mois n'est pas entier, on calcule le nombre réel de jours
exemples :
15/01/08 au 31/01/08 = 17 (31-15+1)
20/02/08 au 29/02/08 = 10 (29-20+1)
01/03/08 au 15/04/08 = 45 (30+15)
10/06/08 au 31/12/08 = 201 (30-10+1)+(30*6) ou encore (21+180)

Mon tableau joint devrait aider à être plus claire que l'autre fois.

Je remercie encore vos esprits brillants qui dénouent des casse-têtes
chinois... ;o)

Bulle