Calcul sur dates

Le
Epicurien
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etcet que les années soient prises en compte.

Merci par avance de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ejc
Le #20274961
Salut,
C'est quoi la règle de calcul de qui, quoi, etc. ?
Les données c'est : du 01/01/09 au 30/03/09 ?
Et on doit obtenir : Echeance 31/12/09 ?
Si c'est le cas, quelle règle applique-tu pour calculer l'échéance ?
A+
Jero

"Epicurien" 00f59851$0$17160$
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etc...et que les années soient prises en compte.

Merci par avance de votre aide.


Epicurien
Le #20275201
Merci de la réponse. Voilà La règle.

du 01/01/09 au 30/03/09 Echeance 31/12/09 Pas de
problème, c'est la fin de l'année en cours

01/04/09 au 30/06/09 Echeance 30/03/10 Je
reprends le dernier mois du trimestre précédent et j'ajoute un an

01/07/09 au 30/09/09 Echeance 30/06/10 Idem, je
reprends le dernier mois du trimestre précédent et j'ajoute 1 an

01/10/09 au 31/12/09 Echeance 30/09/10 Idem

01/01/10 au 30/03/10 On recommence mais année
2010 31/12/10

01/04/10 au 30/06/10 Le dernier mois du
trimestre précédent est 03 donc l'échéance sera 30/03/11 1 an en plus

N'hésite pas si j'ai oublié un élément.

"ejc" news:
Salut,
C'est quoi la règle de calcul de qui, quoi, etc. ?
Les données c'est : du 01/01/09 au 30/03/09 ?
Et on doit obtenir : Echeance 31/12/09 ?
Si c'est le cas, quelle règle applique-tu pour calculer l'échéance ?
A+
Jero

"Epicurien" 00f59851$0$17160$
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etc...et que les années soient prises en compte.

Merci par avance de votre aide.






Eric
Le #20276411
Bonjour,

Dans une requête, tu peux mettre un truc du genre :
Choisir(PartDate("q";[ladate]);SérieDate(Année([ladate]);13;0);SérieDate(Année([ladate])+1;4;0);SérieDate(Année([ladate])+1;7;0);SérieDate(Année([ladate])+1;10;0))
ou en US :
Choose(DatePart("q",[ladate]),DateSerial(Year([ladate]),13,0),DateSerial(Year([ladate])+1,4,0),DateSerial(Year([ladate])+1,7,0),DateSerial(Year([ladate])+1,10,0))

En VBA, quelque chose du genre (vite fait donc à tester):

Function Echeance(unedate)
If IsNull(unedate) Or Not IsDate(unedate) Then Exit Function
Dim rang As Byte
rang = DatePart("q", unedate)
Select Case rang
Case 1
Echeance = DateSerial(Year(unedate), 13, 0)
Case Else
Echeance = DateSerial(Year(unedate) + 1, 2 * rang + rang - 2, 0)
End Select
End Function



Epicurien a écrit :
Merci de la réponse. Voilà La règle.

du 01/01/09 au 30/03/09 Echeance 31/12/09 Pas de
problème, c'est la fin de l'année en cours

01/04/09 au 30/06/09 Echeance 30/03/10 Je
reprends le dernier mois du trimestre précédent et j'ajoute un an

01/07/09 au 30/09/09 Echeance 30/06/10 Idem,
je reprends le dernier mois du trimestre précédent et j'ajoute 1 an

01/10/09 au 31/12/09 Echeance 30/09/10 Idem

01/01/10 au 30/03/10 On recommence mais année
2010 31/12/10

01/04/10 au 30/06/10 Le dernier mois du
trimestre précédent est 03 donc l'échéance sera 30/03/11 1 an en plus

N'hésite pas si j'ai oublié un élément.

"ejc" news:
Salut,
C'est quoi la règle de calcul de qui, quoi, etc. ?
Les données c'est : du 01/01/09 au 30/03/09 ?
Et on doit obtenir : Echeance 31/12/09 ?
Si c'est le cas, quelle règle applique-tu pour calculer l'échéance ?
A+
Jero

"Epicurien" news: 00f59851$0$17160$
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etc...et que les années soient prises en compte.

Merci par avance de votre aide.










--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Michel__D
Le #20278961
Bonjour,

Epicurien a écrit :
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etc...et que les années soient prises en compte.

Merci par avance de votre aide.



Tu ajoute 1 an puis tu enlève 1 jour à la date du début de la période.
Epicurien
Le #20280661
Merci à tous mais j'ai honte de dire que je ne comprends pas.

Pourriez vou me donner l'exemple de:

15/09/09 date d'inscription, la date d'échéance est alors la fin du dernier
mois du trimestre précédent; soit 30/06/10
avec une année en plus. La date d'inscription est toujours la date du jour.

C'est l'année en plus que je ne sais pas faire car les trimestres je pense
que je peux faire avec un select ou if.

Merci par avance de vos réponses.

Heureux de voir que tu es toujours présent Eric.

"Michel__D" news:
Bonjour,

Epicurien a écrit :
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etc...et que les années soient prises en compte.

Merci par avance de votre aide.



Tu ajoute 1 an puis tu enlève 1 jour à la date du début de la période.


Eric
Le #20281921
Bonjour,

Tu copies la fonction Echeance(unedate) dans un module de portée globale
et tu l'utilises aussi bien dans une requête ou un formulaire de la
manière suivante:

Echeance([LeChampQuiContientLaDate]) dans une requête

ou

= Echeance([LeChampQuiContientLaDate]) dans la source d'un contrôle de
formulaire

Voila

Epicurien a écrit :
Merci à tous mais j'ai honte de dire que je ne comprends pas.

Pourriez vou me donner l'exemple de:

15/09/09 date d'inscription, la date d'échéance est alors la fin du
dernier mois du trimestre précédent; soit 30/06/10
avec une année en plus. La date d'inscription est toujours la date du jour.

C'est l'année en plus que je ne sais pas faire car les trimestres je
pense que je peux faire avec un select ou if.

Merci par avance de vos réponses.

Heureux de voir que tu es toujours présent Eric.

"Michel__D" message de news:
Bonjour,

Epicurien a écrit :
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etc...et que les années soient prises en compte.

Merci par avance de votre aide.



Tu ajoute 1 an puis tu enlève 1 jour à la date du début de la période.






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Michel__D
Le #20282211
Bonjour,

Voici un exemple de formule utilisable aussi bien en VBA
que dans une requête (affichage mode SQL) :

DateAdd("d",-1,DateSerial(Year(LaDate)+1,((DatePart("q",LaDate)-1)*3)+1,1))


Epicurien a écrit :
Merci à tous mais j'ai honte de dire que je ne comprends pas.

Pourriez vou me donner l'exemple de:

15/09/09 date d'inscription, la date d'échéance est alors la fin du
dernier mois du trimestre précédent; soit 30/06/10
avec une année en plus. La date d'inscription est toujours la date du jour.

C'est l'année en plus que je ne sais pas faire car les trimestres je
pense que je peux faire avec un select ou if.

Merci par avance de vos réponses.

Heureux de voir que tu es toujours présent Eric.

"Michel__D" message de news:
Bonjour,

Epicurien a écrit :
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etc...et que les années soient prises en compte.

Merci par avance de votre aide.



Tu ajoute 1 an puis tu enlève 1 jour à la date du début de la période.





Eric
Le #20285241
Bonjour,

Sur la base de la proposition de Michel_D et en faisant l'économie de la
fonction DateAdd() ou AjDate() en Fr :

Dans le générateur de requête
SérieDate(Année([LaDate])+1;(PartDate("q";[LaDate])-1)*3+1;0)

En SQL ou VBA :
DateSerial(Year([LaDate])+1,(DatePart("q",[LaDate])-1)*3+1,0)

Epicurien a écrit :
Merci à tous mais j'ai honte de dire que je ne comprends pas.

Pourriez vou me donner l'exemple de:

15/09/09 date d'inscription, la date d'échéance est alors la fin du
dernier mois du trimestre précédent; soit 30/06/10
avec une année en plus. La date d'inscription est toujours la date du jour.

C'est l'année en plus que je ne sais pas faire car les trimestres je
pense que je peux faire avec un select ou if.

Merci par avance de vos réponses.

Heureux de voir que tu es toujours présent Eric.

"Michel__D" message de news:
Bonjour,

Epicurien a écrit :
Bonjour à tous.

Je sèche sur une procédure à écrire. Voici les données.

du 01/01/09 au 30/03/09 Echeance 31/12/09
du 01/04/09 au 30/06/09 Echeance 31/03/10
du 01/07/09 au 30/09/09 Echeance 30/06/10
du 01/10/09 au 31/12/09 Echeance 30/09/10
du 01/01/10 au 30/03/10 Echeance 31/12/10
du 01/04/10 au 30/06/10 Echeance 31/03/11

etc...et que les années soient prises en compte.

Merci par avance de votre aide.



Tu ajoute 1 an puis tu enlève 1 jour à la date du début de la période.






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Publicité
Poster une réponse
Anonyme