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.
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"))
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.
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"))
MERCI, MERCI, MERCI @Dudu2 ,
Ça a fonctionné... j'ai nommé qu'il y avait plus de 200 noms... finalement il y avait plus de 2700 noms. Ça m'a sauvé tout un travail de recopiage. Merci encore.