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

Macros et VBA Excel Discussion :

traduction d'un code Excel 5


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 17
    Points : 18
    Points
    18
    Par défaut traduction d'un code Excel 5
    Bonjour a tous

    Je suis débutant en vba et je dois faire des changements sur un code écrit en français sous Excel 5 (1993). ceci dans le but de l'utiliser sous Excel 2003.
    Voila une partie de ce code qui sert comme procédure automatique de démarrage :
    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
    'procédure automatique de démarrage
     
    Proc Auto_ouvrir()
    BarresMenus(xlFeuilleCalcul).Menus("Insertion").ElémentsMenus("Macro").Supprimer
    BarresMenus(xlFeuilleCalcul).Menus("Fichier").ElémentsMenus("Fermer").Supprimer
    BarresMenus(xlFeuilleCalcul).Menus("Fichier").ElémentsMenus("Quitter").Supprimer
    BarresMenus(xlFeuilleCalcul).Menus("Fichier").ElémentsMenus("Enregistrer").Supprimer
    BarresMenus(xlFeuilleCalcul).Menus("Fichier").ElémentsMenus("Enregistrer sous...").Supprimer
    BarresMenus(xlFeuilleCalcul).Menus("Fichier").ElémentsMenus("Résumé...").Supprimer
    BarresMenus(xlFeuilleCalcul).Menus("Format").ElémentsMenus("Feuille").Supprimer
    BarresMenus(xlFeuilleCalcul).Menus("Outils").ElémentsMenus("Protection").Supprimer
    Feuilles("Présentation").Activer
    Application.Attendre Maintenant + HeureVal("00:00:02")
    MiseEnRoute
    Feuilles("Menu").Activer
    Fin Proc
    Comment faire les amis ?

  2. #2
    Membre confirmé
    Inscrit en
    décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Re,

    Contrairement a ce que je supposais dans ce post, les macros sont en Vba xl5 et non en macro xl4.

    Normalement, si tu ouvres le classeur dans excel 2003 les macros doivent etre
    traduites toutes seules (d'apres mes souvenirs)... peux-tu confirmer?

    Le classeur (epuré et sans données sensibles) sera surement bien venu...
    ++
    Minick

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    En essayant de l'ouvrir sous excel 2003, la macro n'est plus détectée, en plus excel affiche un certain nombre de message d'erreurs au démarrage. Malhereusement je ne pourrais pas vous envoyer la macro pour l'examiner de plus prés car c'est un doc propriété à l'entreprise ou je travaille.

    Par contre, comme je me suis résigné à l'idée de refaire le code, peux tu m'aider stp à effectuer cette étape?

  4. #4
    Membre confirmé
    Inscrit en
    décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Re,

    Si le projet est costaud cela risque d'etre chaud...
    Je pourrais certainnement d'aiguiller comme beaucoup d'autres ici
    mais le but n'est pas de tout te livrer tout cuit mais de t'aider...

    Pour t'encourager, voila la traduction que je ferais du bout de code
    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
    Private Sub Workbook_Open()
        Application.CommandBars("Macro").Enabled = False
        With Application.CommandBars("File")
            .Controls("Fermer").Enabled = False
            .Controls("Quitter").Enabled = False
            .Controls("Enregistrer").Enabled = False
            .Controls("Enregistrer sous...").Enabled = False
        End With
        Application.CommandBars("Format").Controls("Feuille").Enabled = False
        Application.CommandBars("Tools").Controls("Protection").Enabled = False
     
        ThisWorkbook.Sheets("Présentation").Activate
        Application.Wait Now + TimeValue("00:00:02")
     
        Call Miseenroute ' Ceci est une procedure qu'il faudra retranscrire
     
        ThisWorkbook.Sheets("Menu").Activate
    End Sub
    Attention avec ce code ont desactive certain menu (je les ai desactive et pas supprime comme dans le code d'origine)
    il faudra donc penser a remettre tout cela avant de quitter le classeur.

    En faisant ceci par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.CommandBars("Macro").Enabled = True
        With Application.CommandBars("File")
            .Controls("Fermer").Enabled = True
            .Controls("Quitter").Enabled = True
            .Controls("Enregistrer").Enabled = True
            .Controls("Enregistrer sous...").Enabled = True
        End With
        Application.CommandBars("Format").Controls("Feuille").Enabled = True
        Application.CommandBars("Tools").Controls("Protection").Enabled = True
    End Sub
    ++
    Minick

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Bonjour Minick,

    Je te remercie bcp pour ton aide précieuse. Je ne trouve pas de bibliographie sur cette problématique (passage du français en anglais sous vba), connait tu des références la dessus ?

    Je travaille sur un autre morceau du code. Le code originel est le 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
    'procédure d'affichage d'une boîte de dialogue avec 4 choix
    Public Fonction Choisir4(Tex1$; Tex2$; Tex3$; Tex4$; Titr$) En Entier
    Dcl Boitechoix4 En Objet
    AffecteRéf Boitechoix4 = FeuillesBoîteDialogue("BoîteChoisir4")
    Boitechoix4.CadreBoîteDialogue.Caractères.Texte = Titr
    Boitechoix4.ZonesTexte("Texte 1").Intitulé = Tex1
    Boitechoix4.ZonesTexte("Texte 2").Intitulé = Tex2
    Boitechoix4.ZonesTexte("Texte 3").Intitulé = Tex3
    Boitechoix4.ZonesTexte("Texte 4").Intitulé = Tex4
    Boitechoix4.Afficher
    Si Boitechoix4.CasesOption("Case 1") = xlActivé Alors Choisir4 = 1
    Si Boitechoix4.CasesOption("Case 2") = xlActivé Alors Choisir4 = 2
    Si Boitechoix4.CasesOption("Case 3") = xlActivé Alors Choisir4 = 3
    Si Boitechoix4.CasesOption("Case 4") = xlActivé Alors Choisir4 = 4
    Fin Fonction
    Je l'ai traduit comme suit :

    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
    'procédure d'affichage d'une boîte de dialogue avec 4 choix
    Public Function Choisir4(Tex1$, Tex2$, Tex3$, Tex4$, Titr$) As Integer
    Dim Boitechoix4 As Object
    'Affec Boitechoix4 = FeuillesBoîteDialogue("BoîteChoisir4")
    Boitechoix4.CadreBoîteDialogue.Caractères.Texte = Titr
    Boitechoix4.Label("Texte 1").Title = Tex1
    Boitechoix4.Label("Texte 2").Title = Tex2
    Boitechoix4.Label("Texte 3").Title = Tex3
    Boitechoix4.Label("Texte 4").Title = Tex4
    Boitechoix4.View
    If Boitechoix4.CasesOption("Case 1") = Activexl Then Choisir4 = 1
    If Boitechoix4.CasesOption("Case 2") = Activexl Then Choisir4 = 2
    If Boitechoix4.CasesOption("Case 3") = Activexl Then Choisir4 = 3
    If Boitechoix4.CasesOption("Case 4") = Activexl Then Choisir4 = 4
    End Function
    Le compilateur m'indique une erreur au niveau de Acticvexl, connais tu stp la traduction exacte de "xlActivé"

  6. #6
    Membre confirmé
    Inscrit en
    décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    non je n'ai pas de livre a te conseiller, il y a peut etre quelque chose
    sur le site de microsoft pour ca...

    Sinon pour ton code, ici il s'agit d'une boite de dialogue (userform), avec 4 boutons radio (1 seul choix possible).
    Il faut la creer dans l'editeur vb, il faudra prevoir avant l'affichage le changement des
    libelles des differentes options et du titre de la forme ainsi qu'une variable pour retourner l'option choisie.

    A noter quand meme que la traduction 'litterale' n'est pas forcement la bonne solution, il vaut parfois mieux repenser le projet...
    Tout en sachant que les algo complexes ne seront pas a refaire mais simplement a traduire.
    ++
    Minick

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Re,

    Justement, dés le début du projet j'avais à choisir entre recommencer tout et utiliser juste certaines parties du code ou tout "simplement" traduire mot à mot ce code qui fonctionne déja pas mal sous excel 5. En tout cas, merci bcp Minick

  8. #8
    Membre confirmé
    Inscrit en
    décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    De rien...

    Quelque soit l'option choisi, tu trouveras surement de l'aide ici, que ce soit dans
    les tutoriaux ou le forum par le moteur de recherche ou en posant des questions
    sur des points precis sur lesquels tu n'auras pas trouve ton bonheur.

    Bon courage...
    ++
    Minick

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

Discussions similaires

  1. [XL-2007] Traduction code excel vba
    Par bird007 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/06/2010, 19h56
  2. Traduction code excel 5
    Par hannibal_barka dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/02/2010, 15h46
  3. [COM] Traduction d'un code VB COM Excel vers PHP
    Par Copyright83 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/10/2008, 10h32
  4. Traduction d'un tableau excel
    Par Aitone dans le forum Excel
    Réponses: 5
    Dernier message: 04/01/2007, 14h27
  5. [VBA Excel Word]Adapter un code Excel a Word
    Par Baxter67 dans le forum VBA Word
    Réponses: 4
    Dernier message: 08/08/2005, 23h43

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