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 :

Désigner une feuille par son CodeName


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur généraliste
    Inscrit en
    Juin 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur généraliste
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 42
    Par défaut Désigner une feuille par son CodeName
    Chaque feuille excel est identifier par deux propriétés :
    Son "Name" : C'est ce qui est écrit sur l'onglet et qui est visible par l'utilisateur.
    Son "CodeName" : C'est le nom de la feuille écris en dur. Le "CodeName" n'est pas visible par l'utilisateur et à partir de l'interface développeur, sa correspond à la propriété (Name) de chaque feuille.

    Sous Excel VBA on peut indifféremment sélectionner une feuille par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Nom_de_Mon_Onglet").Select
    ou

    Feuil1.Select

    L'avantage d'utiliser le "CodeName", c'est que si on utilisateur à l'idée de renommer l'onglet, ma macro trouvera quand même le "CodeName" Feuil1 !!

    Mon problème est que cette commande que j'utilise pourtant à foison, ne marche plus lorsque que travail sur un autre Workbook que celui qui exécute ma macro ....


    Ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Workbooks.Open ("C:\Users\.....\Documents\Classeur2.xlsx")
    Sheets("Nom_de_Mon_Onglet").Select
    ça Marche ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Workbooks.Open ("C:\Users\.....\Documents\Classeur2.xlsx")
    Feuil1.Select
    Me renvoie une erreur :
    Erreur d'exécution '1004':
    La méthode 'Select' de l'objet '_Workshhet' a échoué

    ... J'ai essayé toute les combinaison possible :-/
    ActiveWorkbook.Feuil1.Select
    Worksheets(Feuil1.Name).Select

    Bref ... je sais plus quoi inventer ...
    Si quelqu'un a une idée !!
    Merci.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Quel message s'inscrit dans la fenêtre d'exécution quand tu lances :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.Open ("C:\Users\.....\Documents\Classeur2.xlsx")
    Debug.Print Sheets("Nom_de_Mon_Onglet").CodeName

  3. #3
    Invité
    Invité(e)

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur généraliste
    Inscrit en
    Juin 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur généraliste
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 42
    Par défaut
    "Feuil1" !!!
    Et si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Feuil1.Name
    j'obtiens le "Name" de l'onglet de la feuille qui exécute la macro !! pas de l'ActiveWorkbook que je viens d'ouvrir avec mon Workbooks.Open

    :'-(

    Citation Envoyé par Menhir Voir le message
    Quel message s'inscrit dans la fenêtre d'exécution quand tu lances :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.Open ("C:\Users\.....\Documents\Classeur2.xlsx")
    Debug.Print Sheets("Nom_de_Mon_Onglet").CodeName

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tu répond à qui ? A Menhir ou à moi ?

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur généraliste
    Inscrit en
    Juin 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur généraliste
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 42
    Par défaut
    Citation Envoyé par Nouveau2 Voir le message
    Tu répond à qui ? A Menhir ou à moi ?
    Je suis en train de lire ta réponse dsl. Je répondais à Menhir.

    Dons, dans le liens que tu m'as transmis on voit que ...
    par exemple on peut désigner "l'autre feuille" par son nom de projet ... ok , je m'y plonge et j'essai d'appliquer cette méthode ... des que j'aurais compris ce qu'est mon nom de projet et comment l'utiliser :-/

  7. #7
    Invité
    Invité(e)
    Par défaut
    Tu n'as pas à être désolé, c'est surtout pour savoir à qui tu répond, sinon, on comprend rien aux réponses.

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

Discussions similaires

  1. Accéder à une feuille protégée, d'un autre classeur par son Codename
    Par stdonat dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/12/2014, 20h41
  2. [XL-2013] selectionner une feuille par son nom
    Par sharox dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2014, 11h19
  3. [XL-2003] Formule faisant référence à une feuille par codeName
    Par delorvallois dans le forum Excel
    Réponses: 2
    Dernier message: 08/03/2010, 09h11
  4. [XL-2000] Appeler une feuille par son CodeName
    Par JOHN14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2009, 17h42
  5. Réponses: 1
    Dernier message: 02/09/2009, 10h35

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