IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Traduire les messages des macros pour macros multilangues [XL-2007]


Sujet :

Excel

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut Traduire les messages des macros pour macros multilangues
    Bonjour,
    Nous avons un classeur contenant un certain nombre de macro qui émettent des messages à l'utilisateur en français, or l'utilisation de ces macros va se généraliser à une population anglophone.
    Quel est le meilleur moyen de concevoir le multilangue?
    Un onglet dédié masqué avec les messages?
    Un fichier resources si tant est que ce soit possible avec Excel?
    Une autre solution?

    Sachant que les éléments à traduire sont essentiellement les messages à l'utilisateur, et peut-être à l'installation aussi les textes et infobulle de la toolbar.

    Actuellement les macros sont écrites en Visual Basic pour Application.
    Nous utilisons Excel 2007 mais il est question de passer en Excel 2010 dans l'année, donc autant que ce soit compatible.

    Merci de votre aide
    Soazig

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 938
    Points : 28 935
    Points
    28 935
    Billets dans le blog
    53
    Par défaut
    Bonjour Soazig,
    Nous avons un classeur contenant un certain nombre de macro qui émettent des messages à l'utilisateur en français, or l'utilisation de ces macros va se généraliser à une population anglophone.
    Quel est le meilleur moyen de concevoir le multilangue?
    Un onglet dédié masqué avec les messages?
    C'est la méthode que j'utilise, même sans code VBA. Une langue par colonne et en première colonne des langues celle qui s'affichera par défaut.
    J'effectue la recherche avec INDEX et EQUIV. En vba et Application.WorksheetFunction.Index et Application.WorksheetFunction.Match ou directement Application.Match

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,

    Finalement, j'ai utilisé une feuille cachée avec toutes les traductions. Pour l'instant 3 colonnes.
    Une colonne mnemonique avec un libellé court technique
    Une colonne Français
    Une colonne anglais
    et le code suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    '---------------------------------------------------------------------------------------
    ' Procedure : Traduire
    ' Author    : s.Forterre
    ' Date      : 24/09/2015
    ' Purpose   : à partir du mnémonique cherche dans la traduction correspondante pour la langue se trouvant dans la colonne numColonneLangue
    'Paramètres :
    '            mnemonique        : contenu de la cellule en colonne 1 qui indique de quel libellé il s'agit
    '---------------------------------------------------------------------------------------
    Public Function Traduire(ByVal mnemonique As String) As String
    Dim sTraduction As String
    Dim plage As Range
     
     
        sTraduction = Application.VLookup(mnemonique, GetPlageTraduction, m_iNumColonneLangue, False)
        If IsError(sTraduction) Then
     
            sTraduction = "No traduction for" & mnemonique
        End If
     
        Traduire = sTraduction
     
    End Function

    Cordialement
    Soazig

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Date - Module pour traduire les noms des jours et des mois
    Par rambc dans le forum Général Python
    Réponses: 11
    Dernier message: 21/09/2013, 18h51
  2. récuperer les contenus des cellules pour un filtre
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2007, 06h18
  3. integrer les messages des fenetres dans une main loop
    Par d'Oursse dans le forum Windows
    Réponses: 3
    Dernier message: 15/06/2007, 19h29
  4. Réponses: 14
    Dernier message: 24/10/2006, 06h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo