OVH Cloud OVH Cloud

calcul d'échéance

11 réponses
Avatar
herve
bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des années, je
souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois

=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+
M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O
16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+

10 réponses

1 2
Avatar
Kamel
Salut,

Si tu pouvais expliquer ce que tu cherches à calculer avec cette formule ...

Kamel

"herve" wrote in message
news:ccatao$glf$
bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des années,
je

souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois


=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+


M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O

16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+




Avatar
herve
bonjour..
cette formule me donne la date d'échéance d'un contrat
par exemple
en L16 : 06/12/1999
en M16 : 2ans
en N16 : 1ans
en O16 : 3mois
le resultat est : 06/12/2004

je souhaite remplacer M16 et N16 par des mois, respectivement : 24mois et
12mois

a+

"Kamel" a écrit dans le message de
news:
Salut,

Si tu pouvais expliquer ce que tu cherches à calculer avec cette formule
...


Kamel

"herve" wrote in message
news:ccatao$glf$
bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des
années,


je
souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois




=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+




M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O

16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+








Avatar
FxM
Bonjour,

Solution simpliste :
Remplace chaque M16 par (M16/12)
et chaque N16 par (N16/12)


Solutions pas belle non plus :
=SI(MOIS.DECALER(L16;L17)>AUJOURDHUI();MOIS.DECALER(L16;L17);MOIS.DECALER(L16;ENT(((AUJOURDHUI()-L16)/365)+0.99999999)*12))
[nécessite d'activer les utilitaires d'analyse]

@+
FxM qui n'a pas bien saisi le coup du préavis là-dedans :o)



herve wrote:

bonjour..
cette formule me donne la date d'échéance d'un contrat
par exemple
en L16 : 06/12/1999
en M16 : 2ans
en N16 : 1ans
en O16 : 3mois
le resultat est : 06/12/2004

je souhaite remplacer M16 et N16 par des mois, respectivement : 24mois et
12mois

a+

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

Salut,

Si tu pouvais expliquer ce que tu cherches à calculer avec cette formule


....

Kamel

"herve" wrote in message
news:ccatao$glf$

bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des



années,

je

souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois




=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+


M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O

16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+












Avatar
herve
bonjour
j'ai essayé la "solution pas belle non plus", mais je trouve pas des
résultats corrects...
dans mon cas, il faut ajouter a la date de la signature, la première durée,
si celle ci est dépassé, il faut continuer avec le renouvellement, soit la
deuxième date, celle-ci sera reprise indéfiniment à condition que le client
n'ai pas dénoncé son contrât 3 mois avant une échéance.
a ce jour, nous utilisions des années pour le renouvellement, maintenant les
contrats parlent en mois, c'est la mon problème..
a+
herve

"FxM" a écrit dans le message de
news:
Bonjour,

Solution simpliste :
Remplace chaque M16 par (M16/12)
et chaque N16 par (N16/12)


Solutions pas belle non plus :

=SI(MOIS.DECALER(L16;L17)>AUJOURDHUI();MOIS.DECALER(L16;L17);MOIS.DECALER(L1

6;ENT(((AUJOURDHUI()-L16)/365)+0.99999999)*12))
[nécessite d'activer les utilitaires d'analyse]

@+
FxM qui n'a pas bien saisi le coup du préavis là-dedans :o)



herve wrote:

bonjour..
cette formule me donne la date d'échéance d'un contrat
par exemple
en L16 : 06/12/1999
en M16 : 2ans
en N16 : 1ans
en O16 : 3mois
le resultat est : 06/12/2004

je souhaite remplacer M16 et N16 par des mois, respectivement : 24mois
et


12mois

a+

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

Salut,

Si tu pouvais expliquer ce que tu cherches à calculer avec cette formule


....

Kamel

"herve" wrote in message
news:ccatao$glf$

bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des



années,

je

souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois






=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+




M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O



16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+














Avatar
FxM
Bonsoir,

En temps que locataire, c'est bien sur cette base que j'étais parti.
Quels seront les résultats attendus pour :
durée : 24 mois,
renouvellement : 12 mois,
préavis : 3 mois
aujourd'hui : 05/07/04
avec les dates de départ suivantes :
01/02/00
01/03/00
01/04/00
04/04/00
05/04/00
06/04/00
01/05/00
01/06/00
01/07/00
01/08/00

@+
FxM


herve wrote:
bonjour
j'ai essayé la "solution pas belle non plus", mais je trouve pas des
résultats corrects...
dans mon cas, il faut ajouter a la date de la signature, la première durée,
si celle ci est dépassé, il faut continuer avec le renouvellement, soit la
deuxième date, celle-ci sera reprise indéfiniment à condition que le client
n'ai pas dénoncé son contrât 3 mois avant une échéance.
a ce jour, nous utilisions des années pour le renouvellement, maintenant les
contrats parlent en mois, c'est la mon problème..
a+
herve

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

Bonjour,

Solution simpliste :
Remplace chaque M16 par (M16/12)
et chaque N16 par (N16/12)


Solutions pas belle non plus :



=SI(MOIS.DECALER(L16;L17)>AUJOURDHUI();MOIS.DECALER(L16;L17);MOIS.DECALER(L1
6;ENT(((AUJOURDHUI()-L16)/365)+0.99999999)*12))

[nécessite d'activer les utilitaires d'analyse]

@+
FxM qui n'a pas bien saisi le coup du préavis là-dedans :o)



herve wrote:


bonjour..
cette formule me donne la date d'échéance d'un contrat
par exemple
en L16 : 06/12/1999
en M16 : 2ans
en N16 : 1ans
en O16 : 3mois
le resultat est : 06/12/2004

je souhaite remplacer M16 et N16 par des mois, respectivement : 24mois



et

12mois

a+

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


Salut,

Si tu pouvais expliquer ce que tu cherches à calculer avec cette formule


....


Kamel

"herve" wrote in message
news:ccatao$glf$


bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des



années,


je


souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois




=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+





M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O



16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+

















Avatar
herve
je cherche, je cherche
j'ai trouvé l'auteur de la macro que j'utilise , sans le préavis de 3 mois,
c'est toi ou vous le 21 07 2001
milles merci car je l'utilise tjr

"FxM" a écrit dans le message de
news:
Bonsoir,

En temps que locataire, c'est bien sur cette base que j'étais parti.
Quels seront les résultats attendus pour :
durée : 24 mois,
renouvellement : 12 mois,
préavis : 3 mois
aujourd'hui : 05/07/04
avec les dates de départ suivantes :
01/02/00
01/03/00
01/04/00
04/04/00
05/04/00
06/04/00
01/05/00
01/06/00
01/07/00
01/08/00

@+
FxM


herve wrote:
bonjour
j'ai essayé la "solution pas belle non plus", mais je trouve pas des
résultats corrects...
dans mon cas, il faut ajouter a la date de la signature, la première
durée,


si celle ci est dépassé, il faut continuer avec le renouvellement, soit
la


deuxième date, celle-ci sera reprise indéfiniment à condition que le
client


n'ai pas dénoncé son contrât 3 mois avant une échéance.
a ce jour, nous utilisions des années pour le renouvellement, maintenant
les


contrats parlent en mois, c'est la mon problème..
a+
herve

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

Bonjour,

Solution simpliste :
Remplace chaque M16 par (M16/12)
et chaque N16 par (N16/12)


Solutions pas belle non plus :




=SI(MOIS.DECALER(L16;L17)>AUJOURDHUI();MOIS.DECALER(L16;L17);MOIS.DECALER(L1


6;ENT(((AUJOURDHUI()-L16)/365)+0.99999999)*12))

[nécessite d'activer les utilitaires d'analyse]

@+
FxM qui n'a pas bien saisi le coup du préavis là-dedans :o)



herve wrote:


bonjour..
cette formule me donne la date d'échéance d'un contrat
par exemple
en L16 : 06/12/1999
en M16 : 2ans
en N16 : 1ans
en O16 : 3mois
le resultat est : 06/12/2004

je souhaite remplacer M16 et N16 par des mois, respectivement : 24mois



et

12mois

a+

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


Salut,

Si tu pouvais expliquer ce que tu cherches à calculer avec cette
formule






....


Kamel

"herve" wrote in message
news:ccatao$glf$


bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des



années,


je


souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois








=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+







M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O



16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+



















Avatar
herve
pas de prob pour tes dates , toutes en 2005
mais pour les suivantes
04/10/00 04/10/05
05/10/00 05/10/05
06/10/00 06/10/04 car il a encore la possibilité de dénoncer son
contrat
a+
herve

"FxM" a écrit dans le message de
news:
Bonsoir,

En temps que locataire, c'est bien sur cette base que j'étais parti.
Quels seront les résultats attendus pour :
durée : 24 mois,
renouvellement : 12 mois,
préavis : 3 mois
aujourd'hui : 05/07/04
avec les dates de départ suivantes :
01/02/00
01/03/00
01/04/00
04/04/00
05/04/00
06/04/00
01/05/00
01/06/00
01/07/00
01/08/00

@+
FxM


herve wrote:
bonjour
j'ai essayé la "solution pas belle non plus", mais je trouve pas des
résultats corrects...
dans mon cas, il faut ajouter a la date de la signature, la première
durée,


si celle ci est dépassé, il faut continuer avec le renouvellement, soit
la


deuxième date, celle-ci sera reprise indéfiniment à condition que le
client


n'ai pas dénoncé son contrât 3 mois avant une échéance.
a ce jour, nous utilisions des années pour le renouvellement, maintenant
les


contrats parlent en mois, c'est la mon problème..
a+
herve

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

Bonjour,

Solution simpliste :
Remplace chaque M16 par (M16/12)
et chaque N16 par (N16/12)


Solutions pas belle non plus :




=SI(MOIS.DECALER(L16;L17)>AUJOURDHUI();MOIS.DECALER(L16;L17);MOIS.DECALER(L1


6;ENT(((AUJOURDHUI()-L16)/365)+0.99999999)*12))

[nécessite d'activer les utilitaires d'analyse]

@+
FxM qui n'a pas bien saisi le coup du préavis là-dedans :o)



herve wrote:


bonjour..
cette formule me donne la date d'échéance d'un contrat
par exemple
en L16 : 06/12/1999
en M16 : 2ans
en N16 : 1ans
en O16 : 3mois
le resultat est : 06/12/2004

je souhaite remplacer M16 et N16 par des mois, respectivement : 24mois



et

12mois

a+

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


Salut,

Si tu pouvais expliquer ce que tu cherches à calculer avec cette
formule






....


Kamel

"herve" wrote in message
news:ccatao$glf$


bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des



années,


je


souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois








=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+







M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O



16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+



















Avatar
FxM
re-

herve wrote:
je cherche, je cherche
j'ai trouvé l'auteur de la macro que j'utilise , sans le préavis de 3 mois,
c'est toi ou vous le 21 07 2001
milles merci car je l'utilise tjr


Eh ben ... j'étais dans des coups foireux :o))

Cette fois-ci sous forme de fonction perso :
Alt-F11 | insertion | module, y recopier ce qui est entre les lignes
(attention aux coupures de ligne). L'utilisation est décrite plus bas.

@+
FxM


======== début de code ====== Public Function echeance(date_debut, duree_ini_mois, duree_prorog_mois,
duree_preavis_mois, optional inclure_preavis)
'(c) FxM 2004/07/05 sur MPFE
Application.Volatile True

Dim deb As Date, ini As Double, pro As Double, prv As Double
Dim inc As Double, td As Double, nb As Double, n1 As Double, n2 As Double

'date de début
deb = CDate(date_debut)
'durée initiale
ini = CDbl(duree_ini_mois)
'durée de prorogation
pro = CDbl(duree_prorog_mois)
'délai de préavis
prv = CDbl(duree_preavis_mois)
'le préavis est inclus -> inc = 1 sinon inc = 0
If IsMissing(inclure_preavis) Then inclure_preavis = 0
inc = 1 - Abs((inclure_preavis = 1) Or (inclure_preavis = True) * 1)
'td = maintenant
td = Int(Now)

'nombre de mois passés
nb = ((td - deb) / 365.25 * 12)

'vérif si > durée initiale
If nb > ini Then
'surplus de mois
n1 = (((td - deb) / 365.25 * 12) - ini)
'nb de mois pour la période suivante complète
n2 = Int((n1 / pro) + 1 - 0.0000000001)
nb = ini + pro * n2
End If

'échéance reprenant les critères
echeance = DateSerial(Year(deb), Month(deb) + nb - (inc * prv), Day(deb))
'rattrapage dans le cas d'un dépassement de mois
Do Until Abs(Day(echeance) - Day(deb)) < 3
echeance = echeance - 1
Loop

End Function
======== fin de code ======
Usage :
| A | B |
----------------------------------
1 | Date début | 31/12/1998 | -> date de début du contrat
2 | Durée initiale | 24 | -> en mois
3 | Prorogation | 12 | -> en mois
4 | Préavis | 3 | -> en mois
5 | Inclure préavis | 0 | (ci-dessous)
En B5, entrer 0 ou FAUX ou rien pour ne pas inclure le préavis (date
maxi de dénonciation). Entrer 1 ou VRAI pour l'inclure (fin effective du
contrat).

Formule à utiliser : ìheance(B1;B2;B3;B4;B5)
validation simple par enter.

Exemples de résultats :
31/12/98 | 24 | 12 | 3 | 1 --> 31/12/04
31/12/98 | 24 | 12 | 3 | 0 --> 30/09/04

31/12/98 | 24 | 18 | 3 | 1 --> 30/06/05
31/12/98 | 24 | 18 | 3 | 0 --> 31/03/05

Avatar
Daniel.M
Bonjour Hervé,

La matricielle suivante (Ctrl-Maj-Entrée):

=SI(L16="";"";DATE(ANNEE(L16);MOIS(L16)+M16+N16*(EQUIV(1;--(
DATE(ANNEE(L16);MOIS(L16)+M16+(LIGNE(INDIRECT("1:99"))-1)*N16
-O16;JOUR(L16))>AUJOURDHUI());0)-1);JOUR(L16)))


Si tu veux utiliser les fonctions des macros complémentaires, avise car je
pourrais faire un peu plus court.

Implicitement, cette formule considère que 99 période de renouvellement seront
suffisantes pour nous placer dans l'avenir (avec des périodes de 12 mois, ça
fait 99 ans). Si tu en veux plus, tu changes le 99 pour un nombre plus grand.

C'est pas vraiment testé. Si tu trouves des problèmes, donnes les intrants ET le
résultat attendu.

Salutations,

Daniel M.

"herve" wrote in message
news:ccatao$glf$
bonjour
je cherche à modifier cette formule, celle-ci fonctionne avec des années, je
souhaite la faire travailler avec des mois.
L16 : date de départ
M16 : durée en année
N16 : renouvellement en année
O16 : préavis en mois

=SI(L16="";"";MAX(DATE(ANNEE(L16)+M16+PLAFOND((AUJOURDHUI()>DATE(ANNEE(L16)+
M16;MOIS(L16)-O16;JOUR(L16)))*((AUJOURDHUI()-DATE(ANNEE(L16)+M16;MOIS(L16)-O
16;JOUR(L16)))/365);N16);MOIS(L16);JOUR(L16));AUJOURDHUI();L16))

merci
a+


Avatar
Daniel.M
Allo,

Plus courte et non-matricielle:

=SI(L16="";"";DATE(ANNEE(L16);MOIS(L16)+SI(AUJOURDHUI()<L16;M16;MAX(
M16;PLAFOND(DATEDIF(L16;AUJOURDHUI();"m")+O16+1;N16)));JOUR(L16)))

Salutations,

Daniel M.
1 2