insertion nom definir recup vba

steph.777

XLDnaute Nouveau
bonjour le forum

comment peut ton copier une liste de nom dans "insertion nom definir"
d'un classeur a un autre ,j'en ai 50 et je n'ai pas envie de tout redefinir sur le nouveau classeur.

merci
stephane
 

thomlau

XLDnaute Occasionnel
Re : insertion nom definir recup vba

Bonjour Steph.777, le forum...

On comprend mal ce que tu désire...mais d'après ce que j'ai compris, il te suffit de dupliquer ton fichier.

Donc enregistrer sous....nouveau_classeur, les macros et autres noms y seront présentes.

++
 

steph.777

XLDnaute Nouveau
Re : insertion nom definir recup vba

merci pour vos réponse

le pb mon classeur fait 20 mo et il m'est 20 minutes a s'ouvrir meme si je le renome.
j'en ai cré un autre avec un duplicateur (fil 2 jr) maintenant il ne fais plus que 5 mo et il s'ouvre correctement sauf que j'ai perdu quelque truc , comme les definitions de plage.

stephane
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : insertion nom definir recup vba

Bonjour le fil, bonjour le forum,

Cette macro à adapter devrait te convenir :
Code:
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
 

JCGL

XLDnaute Barbatruc
Re : insertion nom definir recup vba

Bonjour à tous,

Un essai pour récupérer les Noms Définis sur une feuille créée
Placer le code dans le classeur dans lequel on souhaite récupérer les Noms Définis

Code:
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
A+
 

Pièces jointes

  • Trouver Nons Definis Formule VBA.zip
    9.7 KB · Affichages: 85

steph.777

XLDnaute Nouveau
Re : insertion nom definir recup vba

merci a tous

robert ta macro a bloqué la
ad = noms(x).RefersToRange.Address 'définit la variable ad

et pour jcgl en faite je desire que les noms d'un classeur aille sur un autre classeur dans insertion definir nom
j'en ai 70 en tous

mais une fois importer peut ton les exporters sur un autre classeur avec un autre code


Cordialement
stephane
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : insertion nom definir recup vba

Bonjour le fil, bonjour le forum,

Désolé Steph, cette macro ne plante pas chez moi . Avant de l'éxécuter j'ouvre un classeur vierge que je sauve dans le même répertoire que le classeur source... Évidemment il faut adapter la ligne Set cl = ... au nom du classeur. Les tests que j'ai fait me recopiais toutes les plages nommées du classeur source vers le classeur cible. Quelle version d'Excel utilises-tu ?


Édition :

Hé m.... va encore faloir que je refile 10 euros à JCGL pour ma pub... C'est un malin celui-là !
 
Dernière édition:

steph.777

XLDnaute Nouveau
Re : insertion nom definir recup vba

bonsoir le forum

ton code fonctionne mais le petit souci j'ai plusieurs feuilles referencé dans les plages.
ta macro me renomme les feuilles en feuil1(c'est logique)
cl.Sheets("Feuil1:(").Range(ad).Name = n
et je voudrais quelles garde la references de la feuilles et de la plages

encore merci
 

JCGL

XLDnaute Barbatruc
Re : insertion nom definir recup vba

Re,

OK pour ta réponse mais à qui s'adresse cette demande ?

A+

PS : Robert, dès que je fais une descente à Fabrègues, je te fais un MP... Tu en feras ce que tu veux. Mais un plateau en les Halles de Sète... Violet, Picpoul et autres bonheurs de ta région.
 

steph.777

XLDnaute Nouveau
Re : insertion nom definir recup vba

bonjour
jcgl
Ma reponse s'adressait a robert.
Mais les plages recuperés par ton code jcgl est aussi interresant ;
QUESTION
comment peut ton les mettre dans un autre classeur qui a les meme onglets

Bonne journée:)

steph,
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : insertion nom definir recup vba

Bonsoir le fil, bonsoir le forum,

Stéphane essaie cette macro modifiée :

Code:
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
 

Discussions similaires

Statistiques des forums

Discussions
312 504
Messages
2 089 073
Membres
104 019
dernier inscrit
pascal la