XL 2016 Copier la liste des noms du gestionnaire de noms d'un autre classeur

  • Initiateur de la discussion Initiateur de la discussion jhebert
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jhebert

XLDnaute Nouveau
Je sais qu'en utilisant la fonction excel : Onglet "Formules", boutons "Dans une formule", "Coller des noms" et "Coller une liste".... on peut copier la liste des noms du classeur1 dans lequel on se trouve.
Par contre, j'aimerais savoir comment par VBA, je peux produire cette même liste des noms du classeur1 mais en étant dans le classeur2.

ex: dans classeur1, il y a deux cellules ou plages de cellules qui se nomment reference1 et reference2. Je suis dans le classeur2 et je veux que les deux noms reference1 et reference2 s'inscrive respectivement dans la cellule active et celle du dessous.
 
Solution
Bonjour,
La fonction ListeNomsGestionnaire(WB As Workbook)) a comme paramètre un Workbook / classeur.
Il suffit de le lui passer (à condition qu'il soit ouvert):
Call ListeNomsGestionnaire(Workbooks("Mon classeur avec 200 nom.xlsx"))
Bonjour @jhebert, @Dranreb,

Un exemple de code.
VB:
Sub Test()
    Call ListeNomsGestionnaire(Workbooks(2))
End Sub

Sub ListeNomsGestionnaire(WB As Workbook)
    Dim WS As Worksheet
    Dim Nom As Name
    Dim Tbl As ListObject
    Dim Cellule As Range
   
    Set Cellule = ActiveCell
   
    'Liste des noms
    For Each Nom In WB.Names
        Cellule.Value = Nom.Name
        Set Cellule = Cellule.Offset(1)
    Next Nom
   
    'Liste des tableaux structurés
    For Each WS In WB.Worksheets
        For Each Tbl In WS.ListObjects
            Cellule.Value = Tbl.Name
            Set Cellule = Cellule.Offset(1)
        Next Tbl
    Next WS
End Sub
 
Bonjour @Dudu2 ,
Merci pour votre réponse. Votre programmation fonctionne très bien pour le classeur dans lequel je me trouve, c.a.d. le programme dans le classeur2 va chercher l'information du classeur2 et génère la liste dans le classeur 2. Cependant, j'aimerais que le programme créé dans le classeur2 puisse aller chercher l'information du classeur1 et générer la liste dans le classeur2. Pensez-vous que cela soit possible?

L'exemple que j'ai présenté est simple, mais ultimement je veux aller chercher la liste des plages nommées d'un classeur où se trouve plus de 200 noms. Ce classeur est barré de manière à ce que je ne puisse utiliser la fonction traditionnelle. Je réussi à voir la liste mais le bouton "Coller une liste" n'est pas disponible. Aussi, la restriction d'accès dans le classeur de 200 noms m'empêche d'y générer un programme.
 
Dernière édition:
Bonjour,
La fonction ListeNomsGestionnaire(WB As Workbook)) a comme paramètre un Workbook / classeur.
Il suffit de le lui passer (à condition qu'il soit ouvert):
Call ListeNomsGestionnaire(Workbooks("Mon classeur avec 200 nom.xlsx"))
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour