Format date calendar

kiff77

XLDnaute Junior
Bonjour à tous,

Il se passe un truc assez bizarre avec le calendar. Dans une USF, j'ai un calendrier relié à une textbox. Lorsque je clique sur une date dans le calendrier, cette date s'affiche bien dans la textbox. Ensuite je souhaite intégrer la date dans la feuille Excel (en appuyant sur "OK"). Jusque là je n'ai pas de soucis.

Mon problème est le suivant : le format de la date qui s'affiche dans la feuille n'est pas le même suivant la date choisie. Exemple : si je sélectionne la date 01/08/2008, la date qui s'affichera dans la feuille Excel sera 08/01/2008 (date anglaise visiblement); par contre si je choisis 15/08/2008 la date s'affichera normalement dans la feuille Excel.
De plus, il inverse le jour et le mois jusqu'au 12 du mois et à partir du 13 la date est normale.

J'ai regardé dans les propriétés du calendrier, le format de cellule... je ne vois pas d'où peut venir ce problème.

Je vous joins un fichier à titre d'exemple.

Merci d'avance pour vos réponses.

A+
Kiff

PS: pour faire apparaître le calendrier double click sur la textbox.
 

Pièces jointes

  • Format date calendar.zip
    11.7 KB · Affichages: 47

Roland_M

XLDnaute Barbatruc
Re : Format date calendar

bonjour

Sub essai()
'attention depuis vb les formats dates sont envoyé mode anglais !
Cells(1, 1) = "01/02/2008" 'dans excel ceci donnera "02/01/2008"
'une soluce
Cells(1, 1) = Format("01/02/2008", 0)
'une autre
Cells(1, 1) = CDate("01/02/2008")
'une autre
Dim FormatDate As Date
FormatDate = "01/02/2008"
Cells(1, 1) = FormatDate
End Sub

Roland
 

BERRACHED said

XLDnaute Accro
Re : Format date calendar

Salut,Kiff77

tu rajoute Cdate de cette facon :

Code:
Private Sub Calendar1_Click()
TextBox1 = CDate(Calendar1.Value)
Calendar1.Visible = False
End Sub

Private Sub CommandButton1_Click()
Sheets("feuil1").Range("a1") = CDate(TextBox1.Value)

End Sub

Private Sub TextBox1_Change()
TextBox1 = CDate(Calendar1.Value)
End Sub

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub


Cordialement
 

gfortin9

XLDnaute Occasionnel
Re : Format date calendar

Allô!

La problématique, que tu as, est celle du conflit de format d'affichage de la date entre le format de Windows (Panneau de configuration > Options régionales et linguistique > bouton Personnaliser > onglet Date) et le format utilisé dans Excel.

Le mieux est de le contrôler par le code, surtout si ton chiffrier est susceptible d'être utilisé sur plusieurs ordinateurs où chacun n'a peut-être pas le même format de date Windows.

MJ13 suggère : "CDATE"

L'aide de Excel 2003 suggère : MyStr = Format(MyDate, "jjjj j mmm yyyy")

Dans un projet où un chiffrier devait être utilisé sur plusieurs ordinateurs configuré différemment au niveau du format de la date, j'ai utilisé ce code :
LeFormatDate = Application.International(xlDateOrder)

''''''''''xlDateOrder Long Ordre des éléments de la date :
'''''''''' 0 = mois-jour-année
'''''''''' 1 = jour-mois-année
'''''''''' 2 = année-mois-jour

Select Case LeFormatDate
Case 0
DDateFormat = "mm/dd/yyyy"

Case 1
DDateFormat = "dd/mm/yyyy"

Case 2
DDateFormat = "yyyy/mm/dd"

Case Else
DDateFormat = "yyyy/mm/dd"

End Select

.......................... snip ......................
DateDebut = Format(Worksheets(Address3).Cells(LaLigne, 2), DDateFormat)


.
 

Discussions similaires

Réponses
17
Affichages
792

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson