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

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"))

Dudu2

XLDnaute Barbatruc
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
 

jhebert

XLDnaute Nouveau
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:

Dudu2

XLDnaute Barbatruc
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"))
 

Discussions similaires

Réponses
12
Affichages
477

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 329
Messages
2 087 335
Membres
103 520
dernier inscrit
Azise