Comment désigner une feuille excel par son codename

Résolu
Bonjour,
Désigner une feuille excel par son codename, c'est parfois très facile !

Ainsi, au lieu d'écrire, Sheets("Nom_de_mon_onglet").Activate
on a qu'à écrire par exemple Feuil1.Activate

C'est super ... mais voila ...
quand on ouvre un second classeur par exemple avec la commande
Workbooks.Open("c:\Mes_Documents\...\Mon_Doc.xls")

et que l'on veut activer la nouvelle feuille 1 avec "Feuil1.Activate" ben ... la méthode n'est plus accepté !!

Quelqu'un aurait une idée ???

5 réponses

  1. Modérateur
    1. Ben si ?? Fait un commentaire ?? Sans aucuns commentaires c'est déjà un commentaire :-) ??
    2. Contributeur
      Salut pijaku,

      surtout que je lui avais donné la solution, le 09 novembre à 13h sur ce post.

      @+ Le Pivert
    3. Modérateur
      @ wire less : si je n'ai pas voulu, initialement, faire de commentaires, c'était juste pour t'amener à réfléchir à la question du pluri-postage d'une même question sur X forums. Donc, à priori, cela ne te dérange pas de faire bosser plusieurs personnes, bénévolement, pour tes soucis.

      @ Le Pivert : C'est tout à fait cela. Ce n'est pas la discussion sur CCM qui cloche, mais le fait de :
      - ne pas avoir taggué la discussion sur DVP comme "résolue" dès le 09 à 13h,
      - revenir brandir ici une solution de Marc_L (légèrement différente de la tienne) comme s'il avait lui même trouvé,
    4. Arfff ... vous êtes un peu relou là !! J'ai du mal à vous suivre.
      Je voulais juste fermer la discussion proprement en apportant la réponse !!
      Qu'est ce qu'il y a CS_Le Pivert ?? Je t'ai pas suffisamment remercié ??
      Je voulais juste souligner clairement la réponse.
      Il est inutile de chercher une manière simple et de coder Feuil1.Activate pour un autre Workbook que ThisWorkbook.
      le CodeName est attaché ... au workbook de la macro... pas la peine de chercher à bidouiller un quelconque :
      VBAProjet(FileName1).Feuil1.Name
      ActiveWorkbook.Windows(FileName1).Sheets(Feuil1.Name)
      Workbooks.Open(Filename:=fileToOpen(FileName1)).Feuil1.Activate

      ... ça va ... moi aussi je me suis cassé le *ul !! J'ai passé du temps en debug à chercher un moyen simple ... je suis allé voir les propriétés des objets ActiveSheet / Worksheets / Workbooks pour essayer de comprendre les propriétés ascendantes et descendantes ...

      C'est pas évident. Et il ne me semble que ça mérite d'être bien souligné.
      Je souligne. Il n'existe AUCUN MOYEN de désigner une feuille n'appartenant pas à ThisWorkbook par son CodeName.

      Relis ma réponse également du 9 à 13h53 ... je te remercie pour ce que je considéré alors pour une astuce. Je Re souligne donc.
      Il ne s'agit pas d'une astuce.
      Il n'existe AUCUN MOYEN de désigner une feuille n'appartenant pas à ThisWorkbook par son CodeName.

      Merci à tous pour votre aide. Merci CS_Le Pivert pour ta diligence et tes multiples réponses.