Sub Macro1()
Dim x As Byte 'déclare la variable x
Dim cl As Workbook 'déclare la variable cl (CLasseur)
Dim noms As Object 'déclare la variable noms
Dim ad As String 'déclare la variable ad (ADresse)
Dim n As String 'déclare la variable n (Nom)
Set cl = Workbooks("ton_nouveau_classeur.xls") 'définit la variable cl (à adapter à ton cas)
Set noms = ThisWorkbook.Names 'définit la variable noms (l'ensemble des plage nommées de ce classeur)
For x = 1 To noms.Count 'boucle sur toutes les plages nommé de ce classeur
ad = noms(x).RefersToRange.Address 'définit la variable ad
n = noms(x).Name 'définit la variable n
cl.Sheets("Feuil1").Range(ad).Name = n 'nomme la plage du nouveau classeur
Next x 'prochaine plage nommé de la boucle
End Sub
Option Explicit
Sub NomPlages()
Dim Feuille As Worksheet
Dim FeuilleExiste As Boolean
Dim Nom As Name
Dim Cellule As Range
For Each Feuille In ActiveWorkbook.Sheets
If Feuille.Name = "Noms Définis" Then FeuilleExiste = True
Next Feuille
If FeuilleExiste = True Then
Sheets("Noms Définis").Cells.Delete
Else
Set Feuille = ActiveWorkbook.Sheets.Add()
Feuille.Name = "Noms Définis"
End If
Set Feuille = Sheets("Noms Définis")
With Feuille
.Range("A1") = "Nom"
.Range("B1") = "Référence"
For Each Nom In ActiveWorkbook.Names
Set Cellule = .Range("A65536").End(xlUp)(2)
Cellule = Nom.Name
Cellule(1, 2).Value = "'" & Nom.RefersTo
Next Nom
End With
End Sub
Sub Macro1()
Dim x As Byte 'déclare la variable x
Dim cl As Workbook 'déclare la variable cl (CLasseur)
Dim noms As Names 'déclare la variable noms
Dim ong As String 'déclare la variable ong (ONGlet)
Dim ad As String 'déclare la variable ad (ADresse)
Dim n As String 'déclare la variable n (Nom)
Application.ScreenUpdating = False 'masque les changements à l'écran
Set cl = Workbooks("ton_nouveau_classeur.xls") 'définit la variable cl (à adapter à ton cas)
Set noms = ThisWorkbook.Names 'définit la variable noms (l'ensemble des plages nommées de ce classeur)
For x = 1 To noms.Count 'boucle sur toutes les plages nommé de ce classeur
Application.Goto Reference:=Range(noms(x)) 'sélectionne la plage nommée
ong = ActiveSheet.Name 'définit la variable ong
ad = noms(x).RefersToRange.Address 'définit la variable ad
n = noms(x).Name 'définit la variable n
cl.Sheets(ong).Range(ad).Name = n 'nomme la plage du nouveau classeur
Next x 'prochaine plage nommé de la boucle
Application.ScreenUpdating = True 'affiche les changement à l'écran
End Sub