Problème avec les dates...

EricD01

XLDnaute Junior
Bonsoir à tous...

Je vous joint un fichier avec lequel j'ai un gros problème avec les dates à savoir que lorsque j'inscris une date dans la zone de saisie par exemple: 02/03/2009 et aprés avoir fait [ENTREE] je souhaiterais faire apparaitre dans la zone LABEL située juste en dessous la date au format: lundi 02 mars 2009 afin d'en extraire le jour pour la suite de mon programme...mais voila il apparait: mardi 03 février 2009 (c'est à dire la date inversée)..

Je manipule souvent des dates mais là!!!!!!!!!!!!!!mystère...cela ne viendrais t'il pas de mo ordi a force d'essayer je me le demande...

Merci d'avance à qui me répondra...
 

Pièces jointes

  • Semaine du_au_.xls
    48 KB · Affichages: 53

Excel-lent

XLDnaute Barbatruc
Re : Problème avec les dates...

Bonsoir EricD01,

Je confirme tes doutes, le problème vient bien de ton PC et non du fichier!

J'ai essayé le fichier sur mon PC, (sans faire aucune modification - ni sur mon PC - ni dans ton fichier), ça fonctionne à la perfection.

Bonne fin de soirée
 

ledzepfred

XLDnaute Impliqué
Re : Problème avec les dates...

Bonsoir Eric01,

le problème est que parfois, excel inverse le jour et le mois (il lit ta date à la mode américaine quand le jour est inférieur à 13.
Je n'ai pas reproduit ton bug, et à vrai dire sachant que tu imposes le format de Text1, je ne comprends pas.

J'ai allégé un peu ton code (il est inutile de convertir deux fois Text1 au format que tu souhaites :

Code:
Private Sub Text1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
Dim jours As String
jours = ("lundi 1 mardi 2 mercredi 3 jeudi 4 vendredi 5 samedi 6 dimanche 7")
Text1 = Format$(Text1, "dddd dd mmmm yyyy")
v = Split(jours, " ")
t = Split(Text1, " ")
For x = 0 To 14 Step 2
  If t(0) = v(x) Then GoTo suite
Next x
suite:
Label2.Caption = Text1
End If
End Sub

a+
EDIT: bonsoir Excel-lent :)
 
Dernière édition:

gfortin9

XLDnaute Occasionnel
Re : Problème avec les dates...

Allô!

Le format de la date courte de Windows influence le comportement des macros lors de la manipulation de dates.

Si le format serait : jj-MM-aaaa, il y a bien des chances que l'erreur ci-haut mentionnée, n'existerait plus.

Pour vérifier : Panneau de configuration > Options régionales et linguistiques > section : Standards et formats > bouton : Personnaliser > onglet : Date > section : Date courte.

Si le chiffrier est pour être utilisé sur une seule machine, cela va probablement corriger l'erreur.

Si le chiffrier est pour être distribué, il faudrait contourner par un long code :
détection du format de la date : Application.International(xlDateOrder)
placer chacun des segments (jour, mois, année) dans des variables indépendantes
recomposer en variant l'ordre des variables (Select case... )

Il serait bien plus simple si on pouvait déclarer le format de dates au début de la macro.
Si c'est possible, je ne sais pas comment faire.
Mais rien n'est parfait.

GFortin
 

Statistiques des forums

Discussions
312 508
Messages
2 089 132
Membres
104 042
dernier inscrit
tropsy89