Rechercher : dans
Par :

VBA Excel : Format de date

Dernière réponse le 9 nov 2008 à 17:06:29 misfit, le 16 déc 2004 à 10:17:47 
 Signaler ce message aux modérateurs

Bonjour,

Je n'arrive pas à mettre en forme une date saisie dans un formulaire :
Lors de la fermeture du formulaire les données saisies sot recopiées dans des cellules d'une feuille de calcul ; j'ai défini sur les cellules de la 1ere colonne de ma feuille de calcul un format "Date" sous forme "jj/mm/aaaa".
Dans le module (voir code ci-dessous) je force la valeur de la textbox à ce format :
If saisie.date_ev.Value <> "" Then
If Not IsDate(saisie.date_ev.Value) Then
MsgBox "Date incorrecte.", vbCritical + vbOKOnly, "Erreur"
saisie.date_ev.Value = ""
saisie.date_ev.SetFocus
saisie.Hide
saisie.Show
Else
saisie.date_ev.Value = Format(saisie.date_ev.Value, "dd/mm/yyyy")
End If
End If
Or malgré toutes ces précautions, la date recopiée dans la cellule est au format "mm/jj/aaaa".
Je ne souhaite pas modifier les préférences régionales.

Quelqu'un a-t-il une solution ?

Merci d'avance

1

Kobaya, le 16 déc 2004 à 15:48:21

Salut Misfit,

lorsque tu écrit :
saisie.date_ev.Value = Format(saisie.date_ev.Value, "dd/mm/yyyy"), tu mets une chaîne de caractères dans ta cellule.

essaye ceci :
saisie.date_ev.Value = Cdate(saisie.date_ev.Value)

A+,
Kobaya.

Répondre à Kobaya

2

Armojax, le 16 déc 2004 à 16:17:33
  • +1

Bonjour Misfit,

Les formats de dates attribués aux cellules dans Excel ne se traduisent pas tous de la même façon en VBA.

Ainsi, une cellule dont on définit le format en jj/mm/aa sous Excel est traduit en VBA par : NumberFormat = dd/mm/yy. Normal.
Tandis qu'un format défini par jj/mm/aaaa est traduit par : NumberFormat = m/d/yyyy, ce qui change tout.

Concrètement, en VBA, inverse les mois et les jours.

Armojax.

Répondre à Armojax

4

misfit, le 16 déc 2004 à 16:26:29

Salut Armojax,

Merci de ta réponse qui en plus fonctionne super bien.
Ils sont fous ces américains ...

Répondre à misfit

3

misfit, le 16 déc 2004 à 16:22:21

Salut Kobaya,

Merci pour ta réponse mais ça ne marche pas. Tout comme avec Format ma date apparait bien sous la forme jj/mm/aaaa dans ma textbox mais lorsque je recopie le contenu de ce textbox dans la cellule, la date passe au format mm/jj/aaaaa.

Y a quelqu'un qui aurait une autre idée ... Je craaaaaque

A+
Misfit

Répondre à misfit

5

random, le 20 déc 2004 à 09:10:02
  • +2

Et si tu regardais tans ta cellule le format de celle ci
si tu déposes une date dans une cellule elle prendra le format du contenant

Répondre à random

6

random, le 20 déc 2004 à 09:11:51
  • +1

Et puis transformes ta valeur en cdate(textbox)

Répondre à random

7

Nours, le 12 avr 2007 à 14:05:21

J'ai exactement le même problème lors d'une ouverture de fichier .txt par VBA dans excel, si tu as trouvé préviens moi sinon si je trouve de mon coté je te préviendrai forcément

Répondre à Nours

8

Yann MICHEL, le 11 jun 2007 à 09:35:05

Suggestion:
Au moment de l'enregistrement de la value de la text box vers ta cellule procéde de la manière suivante:
cells(x, y).value = format(Userform.Textbox, "dd/MM/yyyy")

pour définir le format jj/mm/aaaa il font que le mois soit en anglais et en majuscule. C'est la même chose que pour la fonction PartDate.

En espèrant que ca fonction pour toi.
Michou

Répondre à Yann MICHEL

9

Alban, le 24 jui 2007 à 10:28:10

De la part de quelqu'un que j'ai pu aider grâce à ce fil : merci !

Répondre à Alban

10

nini, le 11 déc 2007 à 12:56:58

Bonjour,
je n'arrive pas extraire les semestres de l'année avec la ffonction partdate de access. je tente de l'utiliser dans une requête mais je ne connais pas le paramètre pour extraire le semestre en fonction d'une liste de date saisie. Merci bien de m'aider.Nini

Répondre à nini

11

crogiez, le 22 aoû 2008 à 11:50:58

D="22/08/2008 12:30:42"
activecell...value=datevalue(t)
eventuellement changez format cellule
15 scénarios pour RCT3 sur mon site 

Répondre à crogiez

12

freto, le 19 sep 2008 à 12:15:16

Bon je remonte ce topic, pas envie d'en faire un autre.
J'ai un souchis de date avec un classeur excel: sur mon pc, et sur le pc de mon responsable, pas de problème, je peut faire en vba un:
activeSheet.Cells(parcoursLigne, "H").NumberFormatLocal = "jj/mm/aaaa"
EN revanche, sur le pc d'une autre personne, extérieure au service, dont je ne connais aps la config, impossible de le faire: le format jj/mm/aaaa n'existe pas.
SI vous pouviez m'éclairer sur la solution....merci d'avance
What's tiny, and yellow and very very dangerous?????
A canary with the super-user password.
Mouhahahaha

Répondre à freto

13

Duderino_23, le 6 nov 2008 à 12:16:39

Kubaya rules !!!!

j'avais le même probleme avec le format des dates et c'est réglé grâce à "Cdate" !!!

Thank you so much !

Répondre à Duderino_23

14

 freto, le 9 nov 2008 à 17:06:29

Bon sa fait lontemps, mais j'ai trouvé avec un Cdate et je ne sais plus quelle manipulation (je crois qu'on devait mettre le truc en anglais mais en français quand mm enfin bref).
Maintenant sa fonctionne mais je peut pas en dire plus sur la solution What's tiny, and yellow and very very dangerous?????
A canary with the super-user password.
Mouhahahaha

Répondre à freto
Collection CommentÇaMarche.net