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 :

Problème avec la definition des noms d'objet pour changer une valeur de caption


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Par défaut Problème avec la definition des noms d'objet pour changer une valeur de caption
    Bonjour

    J'ai besoin de faire une macro Excel qui permet de fonctionner en deux langues (francais - anglais)
    pour cela j'ai un tableau Excel qui regroupe les champs suivants dans la feuille "ToolLang"

    Type Object captionName English French
    Sheet Menu CmdCommande Test List Liste de test
    Form Bdtest boutonmarche Start Marche
    ...


    J'ai par la suite 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
     
    Public Sub Translation()
    Dim i As Integer
    Dim ObjectName As String
    Dim CaptionName As String
    Dim CaptionText As String
    Dim Lang As Integer
     
    Lang = 1
    i = 0
     
    Do While (Sheets("ToolLang").Cells(i + 2, 1).Value > 0)
     
        If Sheets("ToolLang").Cells(i + 2, 1).Value = "Sheet" Then
            ObjectName = Sheets("ToolLang").Cells(i + 2, 2).Value
            CaptionName = Sheets("ToolLang").Cells(i + 2, 3).Value
            CaptionText = Sheets("ToolLang").Cells(i + 2, 3 + Lang).Value
            Sheets(ObjectName).CaptionName.Caption = CaptionText '<-- erreur ici
        End If
     
    Loop

    Le code n'accepte pas la dernière ligne alors que si j'entre le code si dessous, tout se passe correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(ObjectName).CmdCommand.caption = CaptionText
    Si je comprend le nom CaptionName ne peut être défini comme une chaine de caractère. Mais alors comment faire car j'ai essayé plusieurs solutions sans réussir à trouver.

    MErci pour votre aide
    Benoit

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Essaie comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(ObjectName).OLEObjects(CaptionName).Object.Caption = CaptionText

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Par défaut
    Merci Fring pour la réponse rapide et efficace. Ca marche très bien.

    Benoit

    Comme vous l'aviez peut être constaté, j'ai aussi des forms et là j'ai essayé votre solution et de broder avec mais pas de chance ça ne fonctionne pas dans ce cas là. Une petite idée?

    Cordialement
    Benoit

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Désolé je ne comprend pas ta question, tu peux préciser ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Par défaut
    Voila qqs précisions
    Dans la précédente formule je vérifie si l'objet se trouve dans une fenêtre "if ___.value = "sheet"
    Mais je dois aussi changer les langues de label et bouton dans des userform

    Donc je créé aussi une étape comme celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      If Sheets("ToolLang").Cells(i + 2, 1).Value = "Form" Then
            ObjectName = Sheets("ToolLang").Cells(i + 2, 2).Value
            CaptionName = Sheets("ToolLang").Cells(i + 2, 3).Value
            CaptionText = Sheets("ToolLang").Cells(i + 2, 3 + Lang).Value
            BdDoc.OLEObjects(CaptionName).Object.Caption = CaptionText  '<--- ca bloque ici
      End if
    J'ai essayé d'appliquer la même méthode mais sans succès. j'ai essayé de broder et trouver qqs astuces sur le net mais sans succès.
    Donc si tu as une piste, elle sera la bienvenue.

    Benoit

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Pour un contrôle sur un UserForm, la bonne syntaxe est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BdDoc.Controls(CaptionName).Caption = CaptionText

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

Discussions similaires

  1. Nom du slot pour changer la valeur d'une variable
    Par UnConfiantEtudiant dans le forum Débuter
    Réponses: 9
    Dernier message: 12/09/2014, 22h58
  2. [XL-2010] Problème avec la méthode find d'un objet Range dans une zone filtrée
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/02/2014, 23h27
  3. Réponses: 4
    Dernier message: 16/11/2009, 22h39
  4. Problème de casse des noms d'objets
    Par Lucas Panny dans le forum SQL
    Réponses: 18
    Dernier message: 10/06/2008, 13h51
  5. problème avec la persistance des objets
    Par gentil dans le forum Hibernate
    Réponses: 15
    Dernier message: 04/04/2007, 11h44

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