OVH Cloud OVH Cloud

Définir le 1er jour du mois d'échéance

5 réponses
Avatar
Papou2M
Bonjour
A l'aide de l'outil Calendar, je récupère une date de paiement. Si cette
date inférieure au 15 du mois, je désire une date d'échéance fixée au 1er du
mois anniversaire sinon au 1er du mois d'aprés

ex.: payé le 12 juin 2004 => échéance suivante = 01 juin 2005
payé le 16 juin 2004 => échéance suivante = 01 juillet 2005

je me suis lancé sur cette procédure mais je bloque...je suis allé sur
excelabo et sur le forum sans trouver de réponse

jour = Mid(datreglem, 1, 2)
datechec = CDate(datreglem) + 365
datechec = Format(datechec, "dd-mmm-yy")

Vous avez, bien sûr, une idée ...
Merci
JPM

5 réponses

Avatar
ru-th
Salut

If Day(ladate) > 15 Then rep = 1
echeanche = DateSerial(Year(ladate), Month(ladate) + 12 + rep, 1)

a+
rural thierry
"Papou2M" <enplus+ a écrit dans le message de news:
40c024ad$0$12742$
Bonjour
A l'aide de l'outil Calendar, je récupère une date de paiement. Si cette
date inférieure au 15 du mois, je désire une date d'échéance fixée au 1er
du

mois anniversaire sinon au 1er du mois d'aprés

ex.: payé le 12 juin 2004 => échéance suivante = 01 juin 2005
payé le 16 juin 2004 => échéance suivante = 01 juillet 2005

je me suis lancé sur cette procédure mais je bloque...je suis allé sur
excelabo et sur le forum sans trouver de réponse

jour = Mid(datreglem, 1, 2)
datechec = CDate(datreglem) + 365
datechec = Format(datechec, "dd-mmm-yy")

Vous avez, bien sûr, une idée ...
Merci
JPM




Avatar
Rai
Papou2M wrote:
Bonjour
A l'aide de l'outil Calendar, je récupère une date de paiement. Si
cette date inférieure au 15 du mois, je désire une date d'échéance
fixée au 1er du mois anniversaire sinon au 1er du mois d'aprés

ex.: payé le 12 juin 2004 => échéance suivante = 01 juin 2005
payé le 16 juin 2004 => échéance suivante = 01 juillet 2005

je me suis lancé sur cette procédure mais je bloque...je suis allé sur
excelabo et sur le forum sans trouver de réponse

jour = Mid(datreglem, 1, 2)
datechec = CDate(datreglem) + 365
datechec = Format(datechec, "dd-mmm-yy")

Vous avez, bien sûr, une idée ...
Merci
JPM


Bonjour,

Si on considère une UserForm avec un contrôle calendar (pas Monthview) nommé Calendar, une TextBox nommée tb_echeance et un bouton nommé btn_calcul,
tu peux te baser sur une routine comme suit :
Private Sub btn_calcul_Click()
If Calendar.Day < 15 Then
tb_echeance.Value = CDate("01/" & Right$("0" & Calendar.Month, 2) & "/" & Calendar.Year + 1)
Else
tb_echeance.Value = CDate("01/" & Right$("0" & Calendar.Month + 1, 2) & "/" & Calendar.Year + 1)
End If
End Sub

Ya certainnement plus simple, mais ça marche.
Tu peux directement remplacer la textBox par une adresse sur ta feuille de calcul (Range("A1) ou Cells(1,1) par ex.)


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...

Avatar
Rai
ru-th wrote:
Salut

If Day(ladate) > 15 Then rep = 1
echeanche = DateSerial(Year(ladate), Month(ladate) + 12 + rep, 1)

a+
rural thierry


Hello Thierry,

Un jour j'arriverai à faire comprendre à mes neurones que DateSerial existe et que c'est utile ;o))
(quand je disais qu'il y avait plus simple que ma formule ...)

J'aime bien lire tes contrib', continue ...


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...

Avatar
ru-th
juste pour le fun !
sur une ligne
echeanche = DateSerial(Year(ladate), Month(ladate) + 12 - (Day(ladate) >
15), 1)
a+
rural thierry

"ru-th" a écrit dans le message de news:

Salut

If Day(ladate) > 15 Then rep = 1
echeanche = DateSerial(Year(ladate), Month(ladate) + 12 + rep, 1)

a+
rural thierry
"Papou2M" <enplus+ a écrit dans le message de news:
40c024ad$0$12742$
Bonjour
A l'aide de l'outil Calendar, je récupère une date de paiement. Si cette
date inférieure au 15 du mois, je désire une date d'échéance fixée au
1er


du
mois anniversaire sinon au 1er du mois d'aprés

ex.: payé le 12 juin 2004 => échéance suivante = 01 juin 2005
payé le 16 juin 2004 => échéance suivante = 01 juillet 2005

je me suis lancé sur cette procédure mais je bloque...je suis allé sur
excelabo et sur le forum sans trouver de réponse

jour = Mid(datreglem, 1, 2)
datechec = CDate(datreglem) + 365
datechec = Format(datechec, "dd-mmm-yy")

Vous avez, bien sûr, une idée ...
Merci
JPM








Avatar
Rai
ru-th wrote:
juste pour le fun !
sur une ligne
echeanche = DateSerial(Year(ladate), Month(ladate) + 12 -
(Day(ladate) > 15), 1)
a+
rural thierry

Histoire de mettre mon grain de sel à moi :


echeanceÚteSerial(Calendar.year+1,Calendar.Month -(Calendar.Day >15),1)

Puisqu'il y a un contrôle calendrier, utilisons-le ;oP