jours et mois en différentes langues

D

Dacien

Guest
Bonjour à tous,

J'ai un fichier excel composé de 3 feuilles qui doivent être en 3 langues différentes. Jusque là, la traduction ne me pose pas de problème mais lorsque j'insère une date automatique, il m'affiche les noms des jours et des mois dans la langue du logiciel Excel (soit ici en anglais). Y a t'il une possibilité quelconque de faire pointer la date auto vers une liste de noms de son choix ?
Et sinon, j'ai un autre petit souci, les versions d'excel ne sont pas toutes en anglais dans ma boite donc quand je formate une date style "dd/mm/yy", celle-ci ne correspondra à rien dans une version Excel en français (jj/mm/aa). Y a t'il moyen aussi de résoudre ce problème (sans changer les options régionales) ?

Merci de vos réponses

Dacien
 
A

andré

Guest
Salut Dacien,

A ma connaissance, il n'y a pas moyen, si ce n'est par un format texte.

Exemple pour les jours (puisque ton logiciel est en anglais) :
Une date en format anglais (of course !) en cellule A1 de la Feuil1
En Feuil2 :
=CHOOSE(WEEKDAY(Feuil1!A1;2);"lundi";"mardi";"mercredi";"jeudi";"vendredi";"samedi";"dimanche")
Idem pour les mois.
En concatenant ces formules tu obtiendras ce que tu recherches.

Pour ta deuxième question il te faudra recourrir aux fonctions GAUCHE, STXT et DROITE, puis concatener les résultats.

Bon anmusement.
Ândré.
 
D

Dacien

Guest
Merci pour ta réponse André, ta solution marche parfaitement, je regrette juste que Excel ne propose pas ce genre de fonctionnalité (peut être avec la version multi language de office ?).

Encore merci et à bientôt.

Dacien
 
A

andré

Guest
Resalut,

Heureux que cela réponde à ton attente.

Quant à ton commentaire, et sans être devin, je crois que dans les mois suivants nous pourrons nous attendre à une nouvelle version d'XL, suite à la mise sur le marché d'OOo.

Le même phénomène s'est déjà produit lors de la concurrence de Windows avec Apple et de Excell avec Lotus 1-2-3.

Wait and see !

Ândré.
 
R

Rai

Guest
Bonjour,

En PJ une peite macro complémentaire (DLE.xla) qui ajoute une fonction à Excel :

Fonction DLE, comme Date en Langue Etrangère.
=DLE(date, langue)
où date représente une date, ou une référence à une date

où langue (facultatif) représente un code langue
fr = Français
en = Anlgais (par défaut si omis)
de = Allemand
es = Espagnol
langue n'est pas sensible à la casse.

Ex :
=DLE(A1;"fr") donnera la date contenue en A1 en français
=DLE(A1) idem, mais en anglais


J'espère que cela t'aidera.

Rai
 

Pièces jointes

  • DLE.zip
    7.7 KB · Affichages: 36
  • DLE.zip
    7.7 KB · Affichages: 45
  • DLE.zip
    7.7 KB · Affichages: 33
D

Dacien

Guest
Salut Rai,

Cette macro est effectivement très interessante et elle marche nickel mais la troisième langue dont j'ai besoin n'y figure pas : le neerlandais. Il serait de plus sympa de pouvoir saisir le format de la date souhaitée directement dans la fonction ("dd mmmm yyyy" par exemple). Je ne sais pas s'il t'est possible de fournir les sources de cette macro afin de faire quelque modifs ?

Dans tous les cas merci !

Dacien
 
D

Dacien

Guest
Re salut

Pascal76 --> Je me suis trompé, j'ai envoyé ce message directement dans ta boite mail.

Rai :
Je comprend que tu veuilles garder les sources de ta macro donc voici :

Les jours :
maandag,dinsdag,woensdag,donderdag,vrijdag,zaterdag,zondag

Et les mois :
januari,februari,maart,april,mei,juni,,juli,augustus,september,oktober,november,december

Encore merci pour ton aide.

Dacien
 
P

Pascal76

Guest
Bonjour

Voici ton fichier pour le néerlandais (ne)

Je n'ai rien fait pour l'instant sur le format.

Pascal
 

Pièces jointes

  • DLE.zip
    9.3 KB · Affichages: 20
  • DLE.zip
    9.3 KB · Affichages: 19
  • DLE.zip
    9.3 KB · Affichages: 19
R

Rai

Guest
re-,

Et voilà le résultat en PJ,
pour ce qui est du code ... je suis tellement génial ;oP
qu'il en est tellement beau, tellement bien pensé que j'ai décidé de le mettre dans le domaine public (avant que quelqu'un d'autre ne publie mieux) :eek:)))

Lol

Ya rien d'exceptionnel dans ce que j'ai écrit, donc voici le code, et de toutes manières ce forum est destiné à une mutualisation des connaissances.
D'ailleurs, les différentes corrections ou commentaires des uns ou des autres feront progresser tout le monde (et moi en premier)

Function DLE(datum, Optional Lang As String)
'Traduction de dates en plusieurs langues
'Par Raimond Schmidt - 02/2006
'Date : date à traduire au format "jj mm aaa"
'Lang : langue de traduction fr=Français, en=Anglais, de=Allemand,
'es=Espagnol, nl=Néerlandais
'Langue par défaut : Anglais
Application.Volatile

If Lang = "" Then Lang = "nl"
Select Case LCase(Lang)
Case "fr"
Jour = Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi")
Mois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
Case "en"
Jour = Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
Mois = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
Case "de"
Jour = Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag")
Mois = Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember")
Case "es"
Jour = Array("Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sabado")
Mois = Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
Case "nl"
Jour = Array("Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag")
Mois = Array("Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December")

End Select

datum = CDate(Left(datum, 2) & "/" & Mid(datum, 4, 2) & "/" & Right(datum, 2))
DLE = Jour(Weekday(datum) - 1) & " " & Day(datum) & Mois(Month(datum) - 1) & " " & Year(datum)

End Function


Bonne continuation


Rai
 

Pièces jointes

  • DLE.zip
    9.7 KB · Affichages: 29
  • DLE.zip
    9.7 KB · Affichages: 22
  • DLE.zip
    9.7 KB · Affichages: 24
R

Rai

Guest
re-,

Une précision :
cette 2nde version prend en compte ta demane au sujet du format.

seul "jj mm aaaa" fonctionnera comme il faut.
J'aurais pu gérer les différents cas : tester si c'est une date, ou le format texte, puis extraire les composants (j,m,a) en me basant sur les espaces....
Si tu en as besoin, on peut faire ça, sinon ...


Rai


P.S. : Pour Pascal - C'est pas bien de 'casser' les mots de passe des projets des copains. Je ne savsia même pas que cela était possible , mdr
 
P

Pascal76

Guest
Re

Excuse je savais pas que c'était un code perso.

Cela montre que comme on l'a souvent évoqué sur ce forum les mots de passe VBA sont utiles pour éviter certaines erreurs ou qu'un utilisateur lambda ne puisse pas toucher au code en allant fouiner dans VBE (c'est ce que je fais au boulot) mais qu'en aucune façon cela ne protège le code par lui-même.

Je ne te promets pas de pas recommencer car cela peut-être bien utile.

Bonne journée

Pascal
 

Discussions similaires

Réponses
8
Affichages
234

Statistiques des forums

Discussions
312 841
Messages
2 092 703
Membres
105 514
dernier inscrit
Hébera