Est il possible sous Excel 97 français d'afficher la date avec
les mois en aglais May au lieu de Mai June au lieu de Juin.
Merci
-------------------------------------------------------------
\\\ | ///
\\ - - // Cordialement Hugues <(;-)
( @ @ )
---------------oOOo-(_)-oOOo---------------------------------
J'espère que cela relancera la discussion :-)
Bonne journée
Stéphane
Hugues Fritsch a écrit dans le message <37CFC10B...@bms.com>...
Pas mal mais n'affiche que le mois si en A1 j'ai 11/03/1999 et B1 ta formule
cela donne March.
Merci quand même si tu as une autre idée je suis preneur ta formule va me servir
pour d'autres classeur donc encore merci.
-------------------------------------------------------------
\\\ | ///
\\ - - // Cordialement Hugues <(;-)
( @ @ )
---------------oOOo-(_)-oOOo---------------------------------
=CONCATENER(CHOISIR(MOIS(AUJOURDHUI());"January";"Februar";"March";"April";"
May";"June";"July";"August";"September";"October";"November";"December");","
;"
";CHOISIR(JOURSEM(AUJOURDHUI());"Monday";"Tuesday";"Wednesday";"Thursday";"F
riday";"Saturday";"Sunday");" ";JOUR(AUJOURDHUI());"
";SI(OU(JOUR(AUJOURDHUI())=1;JOUR(AUJOURDHUI())=21;JOUR(AUJOURDHUI())=31);"s
t";SI(OU(JOUR(AUJOURDHUI()=2);JOUR(AUJOURDHUI()=22));"nd";SI(JOUR(AUJOURDHUI
()=3);"rd";"th"))))
donne aujourd'hui :
September, Tuesday 6 th
je la conseille pas
aghh
stephane
Hugues Fritsch a écrit dans le message <37D3CB2C...@bms.com>...
En A1 = 11/03/99
En C1 =January C2= February ... C12=December et nommer la plage C1:C12
"plg_mois"
[Petite astuce : rentrer une fois pour toutes january, february, ...december
dans Outils /Options /Listes pers. , ce qui permet de taper uniquement
january en C1et d'obtenir toute la liste avec un drag-drop sur c2:c12 ]
1ère sol : compléter celle de Stéphane
B1=CHOISIR(MOIS(AUJOURDHUI());"january"; "february"; "march"; "april"
;"may"; "june" ;"july";"august"; "september"; "october";"november";
"december") & " " & JOUR(A1) & ", "& ANNEE(A1)
2e sol : idem avec décaler
=DECALER(plg_mois;MOIS(A1)-1;0;1;1)& " " & JOUR(A1) & ", "& ANNEE(A1)
3e sol : idem avec index
=INDEX(plg_mois;MOIS(A1))& " " & JOUR(A1) & ", "& ANNEE(A1)
En attendant d'autres suggestions,
JM
Hugues Fritsch <hugues....@bms.com> a écrit dans le message :
37D3CB2C...@bms.com...
Nickel chrome cette solution, il faut maintenant envisager une deuxième
liste pour les jours de la semaine et utiliser aussi joursem(A1) :
index(plg_sem;joursem(A1))
Merci pour les renseignements sur leur manip, je connais pas trop et ne
savais pas l'histoire du drag & drop
Tchoa
Stéphane
JM a écrit dans le message <#MmE$xH##GA.238@cppssbbsa03>...
P asla peine de passer par des cellules , nommer directement :
Insertion/Nom/Définir : ={"January";February";...;"December"} pour
plg_mois
Idem plg_jour.
--
JM
Stéphane Royer <sro...@vanenburg.com> a écrit dans le message :
eUIKI6H##GA....@cppssbbsa02.microsoft.com...
Tu peux profiter du fait que la fonction "TEXTE" évaluée dans une macro
VBA permet de renvoyer des dates formatées en Anglais.
Voici quelques exemples de fonctions et macros :
Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function
Function D_FR(D As String) As Date
D_FR = Evaluate("VALUE(""" & D & """)")
End Function
Sub Dates_Eng()
Selection = Evaluate("TRANSPOSE(TRANSPOSE(TEXT(" & _
Selection.Address(external:=True) & ",""dd mmmm yyyy"")))")
End Sub
Sub Dates_Fr()
Selection = Evaluate("TRANSPOSE(TRANSPOSE(VALUE(" & _
Selection.Address(external:=True) & ")))")
Selection.NumberFormatLocal = "jj mmmm aaaa"
End Sub
=D_ENG(Date;Format) renvoie une chaîne de caractères traduisant la date
donnée en argument en Anglais selon le format indiqué, ou à défaut au
format "dd mmmm yyyy".
Par exemple, =D_ENG(CNUM("10/1/90");"dddd dd mmmm yyyy") renvoie
"Wednesday 10 January 1990"
=D_FR(Date_Texte) convertit la date donnée (texte en Anglais) en un
numéro de série.
La macro Dates_Eng transforme les dates de la plage sélectionnée en
dates (texte) anglaises au format "dd mmmm yyyy", et la macro Dates_Fr
convertit les dates de la plage sélectionnée (textes en Anglais) en
numéros de série.
Bonne chance,
Laurent
Merci a tous pour ces différentes solutions, je suis en train de les mettre
en oeuvre et parallelement je vais tester ta solution Laurent, cela va me
permettre de me lancer dans le code VBA car je n'ai jamais vraiment osé.
-------------------------------------------------------------
\\\ | ///
\\ - - // Cordialement Hugues <(;-)
( @ @ )
---------------oOOo-(_)-oOOo---------------------------------
Merci pour tes macros.
Je n'arrive cependant pas à comprendre pourquoi la macro Dates_Eng() ne
fonctionne pas lorsque il n'y a qu'une seule cellule sélectionnée.
Une idée ?
Francis
Laurent Longre a écrit :
Non, pas la moindre. C'est très curieux.
Pour éviter ce problème, tu peux utiliser :
Sub Dates_Eng()
Selection.NumberFormat = "@"
Selection = Evaluate("TRANSPOSE(TRANSPOSE(TEXT(" & _
Selection.Address(external:=True) & ",""dd mmmm yyyy"")))")
Selection.NumberFormat = "General"
End Sub
Laurent
-------
MVP Excel