Date du jour

Résolu
mltgn Messages postés 49 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 26 juillet 2007 - 4 avril 2005 à 20:55
mltgn Messages postés 49 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 26 juillet 2007 - 5 avril 2005 à 12:44
Salut,


J'ai deux controles sur ma Form. cbDate1.text et cbDate2.text


Je dois saisir une date dans cbDate1.text. cbDate2.text doit être remplit automatiquement à partir de cbdate1.text. C'est à dire:


cbDate1 01/01/2005, on a: cbDate2 01/07/2005cbDate1 31/01/2005, on a: cbDate2 31/07/2005cbDate1 01/02/2005, on a: cbDate2 01/08/2005cbDate1 01/03/2005, on a: cbDate2 01/09/2005cbDate1 31/03/2005, on a: cbDate2 01/10/2005cbDate1 01/04/2005, on a: cbDate2 01/10/2005

cbDate2 est égal cbDate1 + 6 mois.

Merci pour votre assistance

mltgn

15 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
4 avril 2005 à 21:19
cbDate2 = DateAdd("m", 6, cbDate1)
If Day(cbDate2) < Day(cbDate1) Then cbDate2 = DateAdd("d", 1, cbDate2)
MsgBox cbDate2

Daniel
3
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
4 avril 2005 à 21:18
je pense que ca répond à ta question ?http://www.vbfrance.com/code.aspx?ID=3230
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
4 avril 2005 à 21:43
Private Sub Command1_Click()
Dim FirstDate As Date ' Déclare les variables.
Dim IntervalType As String
Dim Number As Integer
Dim Msg
IntervalType = "m" ' "m" indique l'intervalle en mois.
FirstDate = Cdate1.Text
Number = 6
Cdate2 = DateAdd(IntervalType, Number, FirstDate)


End Sub

jpleroisse
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
4 avril 2005 à 21:51
"31/03/2005" + 6 mois donne "30/09/2005"
d'après l'exemple ce n'est pas pas ce qui est demandé, il faut passer au mois suivant d'où la correction ajout d'un jour supplémentaire pour passer au mois suivant.

Daniel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
4 avril 2005 à 22:28
D'accords avec toi, mais ce code tient compte du nombre réel de jours dans le mois, cequi fait qu ' il renvoie 30/09/2005, septembre ayant 30 jours.
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
4 avril 2005 à 22:34
Histoire de mettre la zone , qu'en est-il pour ajouter 6 mois à "31/08/2004" ? (entre autres).

Loup Gris
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
4 avril 2005 à 22:44
pour lui "31/03/2005" plus 1 mois devrait donner "31/04/2005" comme il n'y a pas de 31 avril ça passe au "01/05/2005"

ça pose quand même un problème:
si "29/08/2004" + 6 mois donne "01/03/2005"
que devrait donner "30/08/2004" et "31/08/2004" ????

Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
4 avril 2005 à 22:46
bien vu Loup gris, on s'est croisé !

Daniel
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
4 avril 2005 à 22:55
En respectant le problème posé, j'ai peut-être un début de solution, j'ai testé avec les exemples proposés mais faut voir pour d'autres cas :

Dim date1 As Date
Dim date_debutmois As Date


date1 = "31/08/2004" ' par ex, faut tester avec d'autres dates
date_debutmois = "01/" & Month(date1) & "/" & Year(date1)


MsgBox DateAdd("d", DateDiff("d", date_debutmois, DateAdd("m", 6, date_debutmois)), date1)

Loup Gris
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
4 avril 2005 à 23:02
J'utilise ce code dans des factures pour les délais de paiements.
pour le 8ème mois (29,30,31) le code me renverra toujours 28/02/2004 ppuisque février n'a que 28 jours.
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
4 avril 2005 à 23:10
jpleroisse > dans les progs que j'ai eu à créer pour des délais de paiements, je n'ai jamais employé ce genre de truc, la traite est à x jours (45, 90, ...) donc dans ce cas, un simple date_paiement = dateadd("d",x,date_facture) suffit et est plus correct.

Loup Gris
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
4 avril 2005 à 23:24
voici les différentes solutions:

<HR>
première deuxième troisième
28/08/2004 --> 28/02/2005 -- 28/02/2005 -- 28/02/2005
29/08/2004 --> 01/03/2005 -- 01/03/2005 -- 28/02/2005
30/08/2004 --> 01/03/2005 -- 02/03/2005 -- 28/02/2005
31/08/2004 --> 01/03/2005 -- 03/03/2005 -- 28/02/2005
01/09/2004 --> 01/03/2005 -- 01/03/2005 -- 01/03/2005

<HR>

la deuxième solution est un peu bizarre.

Daniel
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
4 avril 2005 à 23:27
OK Loup Gris, je viens d'essayer ton code, tu as raison, d'abord il est plus simple et effectivement plus correct (ou logique)
Enfin après toutes ces petites discutions, mltgn a du choix
A+ jpleroisse
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
4 avril 2005 à 23:38
Ben oui, Daniel, la 2ème solution (la mienne ?) est bizarre mais bon, ça fonctionne avec les exemples cités (tout comme la tienne si on ne tient pas compte du mois de février) et, comme dit jpleroisse, mltgn a le choix. Il n'aura pas posé sa question pour rien. A lui de juger.

@+

Loup Gris
0
mltgn Messages postés 49 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 26 juillet 2007
5 avril 2005 à 12:44
Salut,
Chers amis merci pour votre assistance. Finalement, j'ai adopté la solution proposée par Daniel. Encore une fois merci à tous ceux qui m'ont apporté leur contribution.

mltgn
0
Rejoignez-nous