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
 

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®
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.

:rolleyes:
voir ceci :
Capture.JPG
 

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
    Capture.JPG
    48.9 KB · Affichages: 347
  • Capture.JPG
    Capture.JPG
    48.9 KB · Affichages: 293

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 ... :eek:

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...:rolleyes:

:rolleyes:
à 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
Capture.JPG

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...
:cool:
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    26.3 KB · Affichages: 151
  • Capture.JPG
    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

Re,


Bonjour job75.

Désolé.
J'avais ignoré ta solution avec la fonction Evaluate que je n'avais jamais utilisé car elle me semblait plutôt complexe.
Pour arriver comprendre ta solution et à pouvoir l'utiliser, je l'ai simplifiée et ça donne ceci :

'Basé sur le fichier de modestegeedee et le code de job75
Code:
Sub DateKhmer()
 Dim dat As Long
 
 NumberFormat = "[$-470]dd-mmm" 
 
 dat = Date

 Cells(12, 1) = Evaluate("TEXT(" & dat & "," & Chr(34) & NumberFormat & Chr(34) & ")")

End Sub
 

Modeste geedee

XLDnaute Barbatruc
Re : Format date en anglais VBA

Bonsour®
Pour arriver comprendre ta solution et à pouvoir l'utiliser, je l'ai simplifiée et ça donne ceci :

'Basé sur le fichier de modestegeedee et le code de job75
Code:
Sub DateKhmer()
 Dim dat As Long 
 NumberFormat = "[$-470]dd-mmm" 
 dat = Date
 Cells(12, 1) = Evaluate("TEXT(" & dat & "," & Chr(34) & NumberFormat & Chr(34) & ")")
End Sub

:confused::confused::confused:
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 :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 388
Messages
2 087 883
Membres
103 672
dernier inscrit
ammarhouichi