XL 2019 Copier Coller les Noms d'un Gestionnaire de Noms dans un nouveau classeur

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 !

Bubu29

XLDnaute Nouveau
Bonjour,

Je dispose de Noms dans un gestionnaire de noms dans mon classeur A et je voudrais les avoir dans mon classeur B
En fouillant un peu partout sur internet, j'ai trouvé cette formule qui semble fonctionner pour d'autres mais pas chez moi !

Pouvez m'éclairer sur ce problème.

Voici la formule : (je précise que read_excel_file_with_python.xlsx est mon classeur A dans lequel se trouve mes noms déjà défini)
VB:
Sub Test()
    Call ListeNomsGestionnaire(Workbooks("read_excel_file_with_python.xlsx"))
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

CDLT
Bruno
 
Solution
re,

après test, ce code, en créant d'abord le nom avec une référence existante, permet de copier les noms avec leurs références même si les objets n'existent pas dans le classeur cible.

Bien cordialement, @+
Code:
Sub Copier_Noms()
Dim Nom_Ref
On Error Resume Next
For Each Nom_Ref In ThisWorkbook.Names
    ActiveWorkbook.Names.Add Name:=Nom_Ref.Name, RefersToR1C1:="='" & Sheets(1).Name & "'!R1C1"
    ActiveWorkbook.Names(Nom_Ref.Name).RefersToR1C1 = Nom_Ref.RefersToR1C1
Next
End Sub
Bonjour Bubu29, le forum

Ce code copiera les noms du classeur contenant la macro dans le classeur actif, mais cela suppose que les objets référencés par les noms existent aussi dans le classeur cible.

Bien cordialement, @+
VB:
Sub Copier_Noms()
Dim Nom_Ref
On Error Resume Next
For Each Nom_Ref In ThisWorkbook.Names
    ActiveWorkbook.Names.Add Name:=Nom_Ref.Name, RefersToR1C1:=Nom_Ref.RefersToR1C1
Next
End Sub
 
re,

après test, ce code, en créant d'abord le nom avec une référence existante, permet de copier les noms avec leurs références même si les objets n'existent pas dans le classeur cible.

Bien cordialement, @+
Code:
Sub Copier_Noms()
Dim Nom_Ref
On Error Resume Next
For Each Nom_Ref In ThisWorkbook.Names
    ActiveWorkbook.Names.Add Name:=Nom_Ref.Name, RefersToR1C1:="='" & Sheets(1).Name & "'!R1C1"
    ActiveWorkbook.Names(Nom_Ref.Name).RefersToR1C1 = Nom_Ref.RefersToR1C1
Next
End Sub
 
Dernière édition:
re,

après test, ce code, en créant d'abord le nom avec une référence existante, permet de copier les noms avec leurs références même si les objets n'existent pas dans le classeur cible.

Bien cordialement, @+
Code:
Sub Copier_Noms()
Dim Nom_Ref
On Error Resume Next
For Each Nom_Ref In ThisWorkbook.Names
    ActiveWorkbook.Names.Add Name:=Nom_Ref.Name, RefersToR1C1:="='" & Sheets(1).Name & "'!R1C1"
    ActiveWorkbook.Names(Nom_Ref.Name).RefersToR1C1 = Nom_Ref.RefersToR1C1
Next
End Sub
Merci beaucoup !
 
- 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

  • Question Question
Microsoft 365 Excel VBA
Réponses
5
Affichages
350
Retour