Changer la langue dans les cellules

Bonjour à tous,

je suis novice, enfin, disons que depuis plusieurs années je ne mets pas mes mains dans le cambouis d'excel et je ne me rappelle pas grand chose.

Voici mon problème :

J'ai un formulaire qui doit être rempli et modifié selon la langue de l'utilisateur.

J'ai donc préparé un petit tableau de traductions de mots que je rappelle dans mes cellules par la formule DECALER() qui change les mots selon la langue qu'on choisi dans un petit menu.

Pour vous faire un exemple, imaginez un petit tableau du genre:

Ligne ; CHAUSSURE

Colonne : COULEUR

et à la correspondance de la couleur, donc : Noir ou Black ou Nero selon votre langue à choisir par une liste déroulante pre-remplie (et modifiable) crée avec la même formule (DECALER()) par le menu "validation de donnée".

Le probleme c'est que quand je change de langue, les en tête de ligne et colonne sont changés automatiquement, car ils ne contiennent pas les valeur ma la formule. Par contre la cellule remplie avec le menu déroulant, ne change pas de valeur, car elle contient la valeur et non pas la formule.

Bien évidemment, si je clique sur la cellule le menu déroulant sera dans la nouvelle langue, mais ce qui à été inséré avant n'est pas traduit automatiquement.

Que faire ?

Avez vous des idées ?

P.S.: je ne vends pas de chaussures, c'était juste pour l'exemple.

Bonjour

Comme nous répétons à longueur de jours, essaie de nous envoyer un bout de fichier avec ton tableau et ta liste.

Pour cela, regarde joindre un fichier, en haut de cette page.

Cordialement

Chaussures ou pas, l'important pour qu'on puisse t'aider, c'est qu'on comprenne ta demande... et là je rejoins Amadéus.

Pour envoyer ton fichier, clique ici

Ensuite tu colles le lien qu'on t'a donné dans ton post.

Cordialement,

V_Elbie

Merci,

je vais faire un petit fichier d'exemple,

je n'ose pas envoyer l'original, ça pourrait vous decourager...

Je viens d'envoyer un fichier réduit.

Il s'agit d'un xls mac 2004, et il ne devrai présenter de problèmes.

Les problèmes sont venus avec MAC 2008 qu n'accepte pas les macros... absurde !

Merci à vous tous

Pour comprendre ma question :

quand vous changez la langue, comme vous le voyez, les mots changent ainsi que les menu déroulant. Nickel.

Quand un anglais ouvre mon fichier et change de langue, tout change, sauf ce qui à été déjà rempli, "Rouge" restera et non "Red"

Enfin, je me disais que ça pouvait vous décourager...

Enfin, j'espère au mois que mon fichier mac s'ouvre sur vos pc. De plus dans mon explication je me refère au premier exemple, avec "Rouge", mais il s'agit ici du fichier réel destinée à l'industrie graphique.

Mais bon, le concept ne change pas...

Bonsoir,

Enfin, je me disais que ça pouvait vous décourager.

Effectivement, surtout quand le classeur comporte quelques erreurs (une liste de validation dans la cellule Z19, qui sert à ????; une erreur dans la fusion de la cellule AF12, qui a du être fusionnée, alors qu'une des cellules devait contenir une liste de validation...)

Donc, pas facile de travailler dessus

Cependant, car il y a un "Cependant", essaie ce code, à insérer dans le code de la feuille

Clic droit sur le nom de l'onglet, visualiser le code, et colle ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Col As Byte, Lig As Long
If Target.Address = "$U$3" Then
        On Error Resume Next
        Application.EnableEvents = False
        For Each Cel In Range("A5:AR" & [AJ65000].End(xlUp).Row).SpecialCells(xlCellTypeAllValidation)
        If Cel.Value <> "" And Not IsNumeric(Cel.Value) Then
                Col = Columns("AT:AW").Find(What:=[U3], LookAt:=xlWhole).Column
                Lig = Columns("AT:AW").Find(What:=Cel, LookAt:=xlWhole).Row
                Cel.Value = Cells(Lig, Col).Value
        End If
    Next Cel
End If
Application.EnableEvents = True
End Sub

Il se peut qu'il y ait des erreurs, pour des causes citées plus haut, mais tu ne risques rien d'essayer

Merci beaucoup, je vais essayer.

Concernant les erreurs, je m'en excuse, mais le tableau envoyé n'est qu'un copier coller d'un autre bien plus complexe, et quelque pointage ne correspond pas à la réalité.

Pour cela j'étais en train de préparer un fichier nouveau tout petit ou le concept simple que je demandais est finalement plus clair.

Voici le lien :

https://www.excel-pratique.com/~files/doc/Langue2.xls

Re-,

c'est pô grave.....

Je te confirme, dans ton fichier exemple, avec ce code adapté au fichier, cela fonctionne :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Col As Byte, Lig As Long
If Target.Address = "$C$4" Then
        On Error Resume Next
        Application.EnableEvents = False
        For Each Cel In Range("A9:D" & [B65000].End(xlUp).Row).SpecialCells(xlCellTypeAllValidation)
        If Cel.Value <> "" And Not IsNumeric(Cel.Value) Then
                Col = Columns("I:K").Find(What:=Target, LookAt:=xlWhole).Column
                Lig = Columns("I:K").Find(What:=Cel, LookAt:=xlWhole).Row
                Cel.Value = Cells(Lig, Col).Value
        End If
    Next Cel
End If
Application.EnableEvents = True
End Sub

Bonjour Piero

Tu pourrais, sans passer par macro, obliger la sélection

dans les listes déroulantes lorsque la langue est changée.

Ici, les 3 listes à modifier sont en Mise en forme conditionnelle et le texte est masqué tant que le choix n'est pas fait.

https://www.excel-pratique.com/~files/doc/LanguesMFC.xls

Cordialement

Merci Felix,

j'ai collé ton code, mais... rien n'arrive.

Enfin, comme je vous disais, ça fait très longtemps que je ne touche pas au code, et me ne neurones se rafraichissent comme les cellules de ma feuille... soit pas du tout !

Enfin, je comprend que ce code récupère pour toute la plage "A5:AR" les correspondances linguistique en plage "AT:AW" indexées sur la valeur de la cellule "U3".

Mais ça ne s'active pas....

Re-,

Regarde le fichier joint, tiré de ton premier fichier

Si la macro ne s'active pas, il faut peut-être réactiver les évènements

Déroule ce code dans un module :

Sub remet()
Application.EnableEvents = True
End Sub

ou quitte excel, et redémarre

le fichier :

https://www.excel-pratique.com/~files/doc/Langues_v1.zip

Merci aussi a Amadeus, et je t'avoue que j'aimerais bien me passer des macros...

Tu m'écris :

Tu pourrais, sans passer par macro, obliger la sélection

dans les listes déroulantes lorsque la langue est changée.

Ici, les 3 listes à modifier sont en Mise en forme conditionnelle et le texte est masqué tant que le choix n'est pas fait.

Mais mon problème principale c'est que je voudrais permettre à l'opérateur anglais de visualiser dans sa langue les choix fait par le français.

Sinon il faut tout re-remplir !

Cher Felix,

j'ai ouvert ton fichier non sans redemarrer excel. mais le résultat ne se déroule pas comme espéré.

Un effet, dans les menus déroulants quand je change de langue, j'ai un menu avec des "Null".

Mais pour se comprendre ; mon vrais problème n'est pas le changement de la langue des menus ou des titres. Tout cela marche à merveille (mise à part puet-être quelque erreurs de pointage sur le fichier envoyé, dus à mon copier coller et au fait qu'il s'agit d'un travail en cours).

Quand je passe en italien ou anglais, les titres et les menus déroulants sont bien en anglais et italien

Le problème se pose quand mon interlocuteur anglais reçois mon fichier rempli en français et il veut l'imprimer ou le modifier dans sa langue : il passe en anglais, et tout passe en anglais, même les menus déroulants. Mais mes choix faits quand le fichier pointais le français, resteront en francais, et il faut réactiver le menu deroulant pour pouvoir les traduire.

Je m'excuse mais je dois m'absenter quelque temps... j’ai deux mo^mes à nourrir.

Je reviendrai tout de suite après diner.

Merci a vous tous

Re-,

Euh, je viens de télécharger mon fichier, et je n'ai aucune erreur...

Si quelqu'un lisant ce forum pouvait en faire de même......

Un effet, dans les menus déroulants quand je change de langue, j'ai un menu avec des "Null".

Peux-tu me donner l'adresse de la cellule en cause?

Ou cela est-il du au fait que ton tableau de correspondance n'est pas complet?

Excuse moi, les "nuls" c'est parce que je suis nul et l'anglais n'était pas rempli.

Donc la macro marche, mais ne dissipe pas mes soucis.

Le résultat est exactement comme avant la macro.

Si je déroule les menus tout est ok, mais une fois que je choisis une option, et que cet option est en français, quand je change de langue, l'option reste toujours en français.

Et cela est bien logique, car les titres sont dynamiques, mais pour ce qui concerne les choix, c'est le menu qui est dynamique, pas la cellule en soi. Elle n'est que le résultat d'une formule du critère validation du menu déroulant.

Donc, quand on change la langue, le menu change bien de langue, mais si la cellule à été remplie en français elle le reste, jusqu'au prochain changement.

Voilà, comment avoir un menu déroulant dans une cellule et à même temps rendre le résultat de cette cellule dynamique grâce à une formule. Impossible ?

P.S.: Regarde le fichier fictif que j'ai envoyé après le premier et qui ne contient que cette problématique, mes explications ne sont pas toujours pointues...

Re-,

Par une formule, cela est impossible, une cellule contenant une liste de validation ne peut pas contenir une formule.

Par contre,

Si je déroule les menus tout est ok, mais une fois que je choisis une option, et que cet option est en français, quand je change de langue, l'option reste toujours en français.

Quelle option?

Pour moi, si j'ouvre en français, et que je passe en Italien, les cellules contenant des listes de validation prennent l'équivalent, dans cette langue, et les listes de validation proposent bien les menus en italien

As-tu activé les macros?

Regarde dans Outils/Macros/Sécurité, que tu sois bien en Moyen, te donnant la possibilité de choisir si tu veux accepter ou pas les macros.

Si tu ne l'étais pas, choisis "Niveau de Sécurité Moyen", quitte excel et redémarre

Pour te faire un exemple pratique (sur ton fichier modifié Langues_v1)

Selctionne la langue sur français, et dans L8 tu choisis "Couché".

Après tu passe en langue italienne (la mienne). Tout devient italien, même le menu deroulant, mais la cellule L8 resterà sur "Couché" et il n'y aura pas la traduction italienne "Patinata". Pour traduire cette cellule il faut repasser par le menu déroulant.

Tu vois le problème ?

Enfin, je crois que ta macro marche bien, et elle est un système infiniment plus raffinée du mien pour avoir de menu en plusieurs langue. Mais le problème n'est pas là...

Rechercher des sujets similaires à "changer langue"