Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Format date en anglais VBA

awa123

XLDnaute Occasionnel
Bonjour,

je voudrais savoir comment mettre le format de la date en anglais en VBA

j'ai essayé cela
Code:
Sub test()
MsgBox format(myDate + 70, "[$-409]dd - mmm")
End Function

mais ça ne fonctionne pas...

Merci beaucoup de votre aide
 

Docmarti

XLDnaute Occasionnel
Re : Format date en anglais VBA

Bonjour.

Il y a beaucoup de formats de date anglais. Il y a le format anglais des Etats-Unis, de l'Irlande, de l'Inde et beaucoup d'autres.
Si tu veux en voir les différences, va dans le Panneau de configuration / Régions et langues et choisis les différents formats anglais offerts par Windows.

Puis tu peux les tester en VBA avec ceci:

Code:
Sub Date_Internationale()
Dim myDate As Date
 myDate = Date
 Cells(1, 1).NumberFormat = "m/d/yyyy"
 Cells(1, 1).Value = CDate(myDate)
  
 MsgBox Format(CDate(myDate), "Long Date")
 MsgBox Format(CDate(myDate), "Short Date")
 
End Sub

Cordialement

Docmarti
 

awa123

XLDnaute Occasionnel
Re : Format date en anglais VBA

Bonjour,

merci de votre réponse Docmarti,
en fait je voudrais la date sous le format suivant dd - mmm où le "dd" sera le numero du jour et le "mmm" les 3 première lettre du mois (en anglais, Jul pour July, Jun -->June....)

je n'ai toujours pas réussi a avoir cela avec votre code vba, n'est il pas possible de garder l'affichage de la date en francais sous windows et de pouvoir l'afficher en anglais en vba?

merci beaucoup
 

Docmarti

XLDnaute Occasionnel
Re : Format date en anglais VBA

Oui. Tu pourrais utiliser la fonction Day () pour connaître le jour et la fonction Month () pour connaître le mois
et pouvoir te référer à une liste ou un array contenant les 12 mois anglais.
 

job75

XLDnaute Barbatruc
Re : Format date en anglais VBA

Bonjour awa123, Docmarti,

En évaluant en VBA la fonction de feuille de calcul TEXTE :

Code:
Sub DateAnglaise()
Dim dat As Long
dat = CDate("12/5") 'CLng(CDate("12/5"))
MsgBox Evaluate("TEXT(" & dat & ",""dd-mmm"")")
End Sub
A+
 

Modeste geedee

XLDnaute Barbatruc
Re : Format date en anglais VBA

Bonsour®

voir ceci :
 

Pièces jointes

  • dates_LCIDs.xls
    109 KB · Affichages: 98
  • dates_LCIDs.xls
    109 KB · Affichages: 77
  • dates_LCIDs.xls
    109 KB · Affichages: 80
  • Capture.JPG
    48.9 KB · Affichages: 347
  • Capture.JPG
    48.9 KB · Affichages: 293

job75

XLDnaute Barbatruc
Re : Format date en anglais VBA

Bonjour le fil,

Je précise que ma solution du post #5 fonctionne quelle que soit la langue de l'ordinateur.

La date est toujours traduite en anglais, c'est l'objet de ce fil...

A+
 

Docmarti

XLDnaute Occasionnel
Re : Format date en anglais VBA

Merci Job75, Modeste geedee

Donc la solution à la question de awa123 est de passer par une cellule d'une feuille Excel.

Code:
Sub test()

Dim mydate As Date

mydate = Date
Cells(1, 1).Value = mydate
Cells(1, 1).NumberFormat = "[$-409]dd - mmm"

MsgBox Cells(1, 1).Text

End Sub
 

Modeste geedee

XLDnaute Barbatruc
Re : Format date en anglais VBA

Bonsour®

plutôt que de savoir qui a la plus grosse ...

VBA parlant effectivement anglo-saxon, EVALUATE est une solution restrictive littéralement à la demande...

awa123 ne nous précise pas l'usage voulu de sa fonction (strictement VBA msgbox ??? ou récupération dans une cellule )
awa123 pourrait nous expliquer alors, pourquoi dans la question initiale, il utilise le LCId lié aux options régionales ?

eu-t-il été citoyen britannique Gallois ou gaëllique Ecossais, l'usage du LCid est une autre solution ouverte...


à tester :
VB:
Sub DateAnglaise()
 Dim dat As Long
 dat = CDate("12/8") 'CLng(CDate("12/8"))
 MsgBox Evaluate("TEXT(" & dat & ",""dd-mmm"")")
 [A2] = Evaluate("TEXT(" & dat & ",""dd-mmm"")")
 End Sub


nb : il ne s'agit pas ici de lèse-majesté eu-égard à un Mega-barbatruc
simplement d'une émulation que j'espère sincère...
 

Pièces jointes

  • Capture.JPG
    26.3 KB · Affichages: 151
  • Capture.JPG
    26.3 KB · Affichages: 152

job75

XLDnaute Barbatruc
Re : Format date en anglais VBA

Hello Modeste geedee,

C'est très normal, Evaluate("TEXT(" & dat & ",""dd-mmm"")") étant une (vraie) date, si l'on entre cette date dans une cellule, le format qu'on a donné à la cellule (ou le format par défaut) est appliqué à la date.

A+
 

job75

XLDnaute Barbatruc
Re : Format date en anglais VBA

Re,

Si l'on veut obtenir "12-Aug" dans une cellule, outre le format indiqué par Docmarti, on peut utiliser le format "Texte" ou mettre une apostrophe :

Code:
Sub DateAnglaise()
Dim dat As Long, x As String
dat = CDate("12/8") 'CLng(CDate("12/8"))
x = Evaluate("TEXT(" & dat & ",""dd-mmm"")")
MsgBox x
'[A2].NumberFormat = "[$-409]dd - mmm"
'[A2].NumberFormat = "@" 'format Texte
'[A2] = x
[A2] = "'" & x
End Sub
A+
 

Docmarti

XLDnaute Occasionnel
Re : Format date en anglais VBA

 

Modeste geedee

XLDnaute Barbatruc
Re : Format date en anglais VBA

Bonsour®

dans ce cas pourquoi pas simplement :
VB:
 Sub DateKhmer2()
 Dim Lcid As String
 Lcid = "[$-470]ddd dd-mmmm yyyy"
  Cells(12, 1).NumberFormat = Lcid
  Cells(12, 1) = Now()
  MsgBox Evaluate("TEXT(Now() ," & Chr(34) & Lcid & Chr(34) & ")"), vbInformation, "Valeur texte !!!"
  MsgBox Cells(12, 1).Text & Chr(10) _
          & "valeur cellule = " & Cells(12, 1).Value2, vbExclamation, "Format et N° de serie"  
 End Sub
la valeur de la cellule reste utilisable dans d'autres formules ou codes VBA
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…