Bonjour à tous
j'ai crééé un userform sous excel, avec 2 calendriers et un textbox sous chaque calendrier.
j'ai besoin que l'utilisateur puisse insérer une date dans le premier text box, et que dans le second se calcule automatiquement la date 1 an avant. les calendriers sont la pour l'indication visuelle.
Au premier abord cela me paraissait simple mais quand je rentre la date dans le premier textbox, VBA interprete mal le calcul.
si par exemple je rentre le 01/05/2014 (pour 01 may 14) => vba me sort dans le second le 06/02/13 alors qu'il devrait me donner 02/05/13. Le calcul fonctionne bien, car j'ai testé avec un Msgbox qui me donne la bonne date, et le calendrier se met à jour avec la bonne date.
voici l'extrait du code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub Beg_date_AfterUpdate() Dim mydate Beg_date.MaxLength = 11 'nb caractères maxi autorisé dans le textbox Beg_date = Format(Beg_date.Value, "dd mmm yyyy") Calendar1.Value = CDate(Beg_date) mydate = DateSerial(Year(CDate(Beg_date.Value)), Month(CDate(Beg_date.Value)), Day(CDate(Beg_date.Value))) MsgBox (mydate) & Chr(10) & DateAdd("d", -364, mydate) end_date.Value = DateAdd("d", -364, mydate) end_date = Format(end_date.Value, "dd mmm yyyy") Calendar2.Value = DateAdd("d", -364, Beg_date) End Sub
Partager