OVH Cloud OVH Cloud

Format date "anglais"

23 réponses
Avatar
D.Lair
Bonjour =E0 toutes et =E0 tous,
Excel fran=E7ais affiche le format de "12/04/03" (selon=20
format de cellule) comme : "12 avril 2003". Je souhaite=20
que ma macro fasse afficher au format "anglais", c'est-=E0-
dire "12 april 2003". Est-ce possible sans substituer dans=20
la date consid=E9rer comme chaine chaque mois fran=E7ais par=20
sa traduction en anglais, c'est-=E0-dire en for=E7ant sur le=20
format-date dans Excel ?

Merci.
DL

3 réponses

1 2 3
Avatar
michdenis
Bonsoir Daniel,

Si tu regardes dans le chemin indiqué :

HKey_Current_User / Control Panel / International
rubrique "iFirstDayOfWeek"
rubrique "iFirstWeekOfYear"

Or

HKey_Users / Default / Control Panel / International / Sous la rubrique "iFirstDayOfWeek" pour le premier jour de la semaine
et la rubrique "iFirstWeekOfYear" pour le premier jour de l'année.


Maintenant pour les API, regarde ce qui suit, ça pourrait peut être répondre à tes besoins :

'----------------------------------------------
'These declarations are designed
'for use in a .bas module
'since the constants are public


Declare Function GetLocaleInfo Lib "kernel32" Alias _
"GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, _
ByVal lpLCData As String, ByVal cchData As Long) As Long

Declare Function SetLocaleInfo Lib "kernel32" Alias _
"SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, _
ByVal lpLCData As String) As Boolean

Declare Function GetUserDefaultLCID% Lib "kernel32" ()

Public Const LOCALE_ICENTURY = &H24
Public Const LOCALE_ICOUNTRY = &H5
Public Const LOCALE_ICURRDIGITS = &H19
Public Const LOCALE_ICURRENCY = &H1B
Public Const LOCALE_IDATE = &H21
Public Const LOCALE_IDAYLZERO = &H26
Public Const LOCALE_IDEFAULTCODEPAGE = &HB
Public Const LOCALE_IDEFAULTCOUNTRY = &HA
Public Const LOCALE_IDEFAULTLANGUAGE = &H9
Public Const LOCALE_IDIGITS = &H11
Public Const LOCALE_IINTLCURRDIGITS = &H1A
Public Const LOCALE_ILANGUAGE = &H1
Public Const LOCALE_ILDATE = &H22
Public Const LOCALE_ILZERO = &H12
Public Const LOCALE_IMEASURE = &HD
Public Const LOCALE_IMONLZERO = &H27
Public Const LOCALE_INEGCURR = &H1C
Public Const LOCALE_INEGSEPBYSPACE = &H57
Public Const LOCALE_INEGSIGNPOSN = &H53
Public Const LOCALE_INEGSYMPRECEDES = &H56
Public Const LOCALE_IPOSSEPBYSPACE = &H55
Public Const LOCALE_IPOSSIGNPOSN = &H52
Public Const LOCALE_IPOSSYMPRECEDES = &H54
Public Const LOCALE_ITIME = &H23
Public Const LOCALE_ITLZERO = &H25
Public Const LOCALE_NOUSEROVERRIDE = &H80000000
Public Const LOCALE_S1159 = &H28
Public Const LOCALE_S2359 = &H29
Public Const LOCALE_SABBREVCTRYNAME = &H7
Public Const LOCALE_SABBREVDAYNAME1 = &H31
Public Const LOCALE_SABBREVDAYNAME2 = &H32
Public Const LOCALE_SABBREVDAYNAME3 = &H33
Public Const LOCALE_SABBREVDAYNAME4 = &H34
Public Const LOCALE_SABBREVDAYNAME5 = &H35
Public Const LOCALE_SABBREVDAYNAME6 = &H36
Public Const LOCALE_SABBREVDAYNAME7 = &H37
Public Const LOCALE_SABBREVLANGNAME = &H3
Public Const LOCALE_SABBREVMONTHNAME1 = &H44
Public Const LOCALE_SCOUNTRY = &H6
Public Const LOCALE_SCURRENCY = &H14
Public Const LOCALE_SDATE = &H1D
Public Const LOCALE_SDAYNAME1 = &H2A
Public Const LOCALE_SDAYNAME2 = &H2B
Public Const LOCALE_SDAYNAME3 = &H2C
Public Const LOCALE_SDAYNAME4 = &H2D
Public Const LOCALE_SDAYNAME5 = &H2E
Public Const LOCALE_SDAYNAME6 = &H2F
Public Const LOCALE_SDAYNAME7 = &H30
Public Const LOCALE_SDECIMAL = &HE
Public Const LOCALE_SENGCOUNTRY = &H1002
Public Const LOCALE_SENGLANGUAGE = &H1001
Public Const LOCALE_SGROUPING = &H10
Public Const LOCALE_SINTLSYMBOL = &H15
Public Const LOCALE_SLANGUAGE = &H2
Public Const LOCALE_SLIST = &HC
Public Const LOCALE_SLONGDATE = &H20
Public Const LOCALE_SMONDECIMALSEP = &H16
Public Const LOCALE_SMONGROUPING = &H18
Public Const LOCALE_SMONTHNAME1 = &H38
Public Const LOCALE_SMONTHNAME10 = &H41
Public Const LOCALE_SMONTHNAME11 = &H42
Public Const LOCALE_SMONTHNAME12 = &H43
Public Const LOCALE_SMONTHNAME2 = &H39
Public Const LOCALE_SMONTHNAME3 = &H3A
Public Const LOCALE_SMONTHNAME4 = &H3B
Public Const LOCALE_SMONTHNAME5 = &H3C
Public Const LOCALE_SMONTHNAME6 = &H3D
Public Const LOCALE_SMONTHNAME7 = &H3E
Public Const LOCALE_SMONTHNAME8 = &H3F
Public Const LOCALE_SMONTHNAME9 = &H40
Public Const LOCALE_SMONTHOUSANDSEP = &H17
Public Const LOCALE_SNATIVECTRYNAME = &H8
Public Const LOCALE_SNATIVEDIGITS = &H13
Public Const LOCALE_SNATIVELANGNAME = &H4
Public Const LOCALE_SNEGATIVESIGN = &H51
Public Const LOCALE_SPOSITIVESIGN = &H50
Public Const LOCALE_SSHORTDATE = &H1F
Public Const LOCALE_STHOUSAND = &HF
Public Const LOCALE_STIME = &H1E
Public Const LOCALE_STIMEFORMAT = &H1003
'----------------------------------------------

Public Sub Get_locale() ' Retrieve the regional setting

Dim Symbol As String
Dim iRet1 As Long
Dim iRet2 As Long
Dim lpLCDataVar As String
Dim Pos As Integer
Dim Locale As Long

Locale = GetUserDefaultLCID()

'LOCALE_SDATE is the constant for the date separator
'as stated in declarations
'for any other locale setting just change the constant

'Function can also be re-written to take the
'locale symbol being requested as a parameter

iRet1 = GetLocaleInfo(Locale, LOCALE_SDATE, _
lpLCDataVar, 0)
Symbol = String$(iRet1, 0)

iRet2 = GetLocaleInfo(Locale, LOCALE_SDATE, Symbol, iRet1)
Pos = InStr(Symbol, Chr$(0))
If Pos > 0 Then
Symbol = Left$(Symbol, Pos - 1)
MsgBox "Regional Setting = " + Symbol
End If

End Sub
'----------------------------------------------
Public Sub Set_locale() 'Change the regional setting

Dim Symbol As String
Dim iRet As Long
Dim Locale As Long

'LOCALE_SDATE is the constant for the date separator
'as stated in declarations
'for any other locale setting just change the constant

'Function can also be re-written to take the
'locale information being set as a parameter

Locale = GetUserDefaultLCID() 'Get user Locale ID
Symbol = "/" 'New character for the locale
iRet = SetLocaleInfo(Locale, LOCALE_SDATE, Symbol)

End Sub
'----------------------------------------------



Salutations!









"Daniel.M" a écrit dans le message de news:%
Merci Denis.

Je retrouve effectivement dans la base de registre les infos inscrites par moi
dans le Menu
Start/Settings/Control Panel/Regional Settings

iDate "2"
iTime "1"
iTLZone "1"
Locale 00001009
etc.

Mais, à moins que me fourre-je (RBO tm), je n'y ai pas vu le champ qui dirait
que la semaine commence le dimanche (jour 1) ou le lundi (jour 2).

Or je suis confiant que ce champ existe (car je ne crois pas qu'Excel déduit
cette information du code de language 'Locale') et je parierais qu'il y a un API
qui va récupérer la structure à laquelle il appartient.

Salutations,

Daniel M.


"michdenis" wrote in message
news:%23$WVQa$
Bonsoir Daniel,

Le OÙ signifie la base de registre :

regarde là :

HKey_Current_User / Control Panel / International


Si le OÙ signifie autre chose ... je n'ai pas compris !


Salutations!



"Daniel.M" a écrit dans le message de
news:eG4cZM$

Sans doute pour les mêmes raisons (localisation des parties non
numériques d'une
date) WeekdayName semble avoir le même comportement
(WeekdayName(2) renvoie mardi).


Avec mes paramètres régionaux à "French Canadian",
WeekdayName(2) retourne "lundi".
Avec mes paramètre régionaux à "French Standard",
WeekdayName(2) retourne "mardi".

Ce qui est cohérent avec tes résultats (et le fait qu'Excel réagit aux
paramètres régionaux).

Par curiosité, quelqu'un saurait-il OÙ le SE conserve cette information?
Quelle

est la structure du SE et le champ précis dans lequel Excel va piger pour
savoir

que les semaines françaises commencent le Lundi et d'autres le Dimanche?

Car ce n'est pas l'usager qui l'inscrit explicitement. Il ne fait que changer
ses paramètres régionaux.

Salutations,

Daniel M.



Avatar
RT
Bonjour

Comme quoi les défauts de 98 ont encore du bon

Bonne chasse et à plus tard

Rex


"Jacquouille" wrote in message
news:
Salut
Je sais que ce n'est pas une référence, mais chez moi, avé XL2000, ça va
pô.

Il me laisse l'ancien affichage, made in Camembert.

--
Jacquouille conseille : http://www.excelabo.net


"JièL Goubert" a écrit dans le
message de news:
Bonjoir(c) D.Lair

vite fait et en tatonnant, dans les format de date, met :
[$-c]j mmmm aaaa
pas que que ça soit une bonne sainte axe, mais ça le fait (avec 2003)

Quelqu'un connait-il les différents code de pays (je suppose que ç'est
ça)


que l'on peut utiliser ?

--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application

http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm



Le 11/08/2004 12:14 vous avez écrit ceci :
Bonjour à toutes et à tous,
Excel français affiche le format de "12/04/03" (selon
format de cellule) comme : "12 avril 2003". Je souhaite
que ma macro fasse afficher au format "anglais", c'est-à-
dire "12 april 2003". Est-ce possible sans substituer dans
la date considérer comme chaine chaque mois français par
sa traduction en anglais, c'est-à-dire en forçant sur le
format-date dans Excel ?

Merci.
DL








Avatar
royer_stephane
bonjour à tous

en bas de la section "Manipulation de dates" de la page suivante
http://xlbysteph.free.fr/aideinformatique/actiondate.htm#tps_date_1
vous trouverez des fonctions écrites par LL ainsi qu'une formule
taribiscotée que je m'étais amusé à écrire.

les fonctions de laurent sont bien utiles.

bonne journée à tous
stéphane

ps : le serveur de pages perso wanadoo est planté ! impossible de
visiter ton site Frédéric


Frédéric Sigonneau wrote in message news:...
Bonjour,

Avant Excel 2002 je ne pense pas qu'il soit possible d'utiliser un format pour
faire ce que tu souhaites. Une petite fonction perso pourrait peut-être te
dépanner (utilisable en VBA comme dans une feuille de calcul), mais le résultat
est du texte... :

Function EnAnglais(D)
Dim Mois
Mois = Application.Choose(Month(D), "January", "February", "March", "April", _
"May", "June", "July", "September", "October", "November", "December")
EnAnglais = Day(D) & " " & Mois & " " & Year(D)
End Function

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à toutes et à tous,
Excel français affiche le format de "12/04/03" (selon
format de cellule) comme : "12 avril 2003". Je souhaite
que ma macro fasse afficher au format "anglais", c'est-à-
dire "12 april 2003". Est-ce possible sans substituer dans
la date considérer comme chaine chaque mois français par
sa traduction en anglais, c'est-à-dire en forçant sur le
format-date dans Excel ?

Merci.
DL




1 2 3