Transférer les noms de cellules

Etienne2323

XLDnaute Impliqué
Bonjour à tous,
une fois de plus, je dois faire appel à vos services et à vos connaissances. Je vous expose mon problème. Dans un fichier de base, j'ai un onglet que je dois copier dans un second fichier. Pour ce faire, je ne copie pas l'onglet au complet, je prend seulement une partie du contenu, ce qui m'intéresse, et je la copie dans un onglet du même nom dans mon second fichier. Le problème est le suivant. Certaines cellules de l'onglet de mon fichier de base sont nommées et lorsque je fais la copie des infos dans mon second fichier, je perds les noms de ces cellules. Le fait est que j'en ai besoin dans mon second fichier aussi. Ces cellules se trouvent dans la colonne M dans chacun des deux fichiers. Ce sont exactement les mêmes emplacements, c'est-à-dire que "M5" dans le fichier de base correspond à "M5" dans mon second fichier.

Alors, comment récupérer les noms des cellules ? Vous avez une idée ?

Je n'ai aucun inconvénient à le faire par macro si vous considérez que c'est la solution.

Bref, j'ai besoin d'aide et d'inspiration.

Merci à l'avance !

Etienne
 

pierrejean

XLDnaute Barbatruc
Re : Transférer les noms de cellules

bonjour Etienne

la copie est-elle faite par macro ?
Si oui il est possible de la modifier pour y incorporer la recuperation des noms de cellule (ou plages)
Sinon pour concevoir la macro il serait bon d'avoir les noms des fichiers et des feuilles concernées
Des fichiers exemples pour test permettraient de proposer une solution éprouvée

Edit : Salut tototiti , desolé pour la collision
 

Etienne2323

XLDnaute Impliqué
Re : Transférer les noms de cellules

Bonjour tototiti et PierreJean,
ok donc tout d'abord, pour répondre à tototiti, oui, les deux feuilles portent le même nom dans les deux onglets.

Ensuite, pour répondre à PierreJean, oui la copie est faite par macro. Je vous colle ici le bout de code de la macro qui nous intéresse.

SendKeys ("{ENTER}")
Windows("Etienne.xls").Activate
Sheets("rendements.astra.brut").Select
Cells.Select
Selection.Clear
Windows("Rapport trimestriel.xls").Activate
Sheets("rendements.brut").Select
Cells.Select
Selection.Copy
Windows("Etienne.xls").Activate
Sheets("rendements.brut").Select
Cells.Select
ActiveSheet.Paste
With Range("A2:BA300")
.Select
.Copy
End With
Selection.PasteSpecial Paste:=xlPasteValues
Range("A1").Select

Voila. Comme je l'ai mentionné dans mon premier message, les noms de cellules à récupérer se situe dans la colonne M du fichier "Rapport trimestriel.xls"

Merci

Etienne
 

tototiti2008

XLDnaute Barbatruc
Re : Transférer les noms de cellules

un truc comme ça, je pense :

Code:
Sub CopieNoms()
Dim Na As Name
    For Each Na In ThisWorkbook.Names
        If Na.RefersTo Like "*rendements.brut*" Then
            Workbooks("Etienne.xls").Names.Add Name:=Na.Name, RefersTo:=Na.RefersTo
        End If
    Next
End Sub
 
Dernière édition:

Etienne2323

XLDnaute Impliqué
Re : Transférer les noms de cellules

Bonjour, je suis désolé, j'ai fait une erreur dans le code. Voila la vrai version !

SendKeys ("{ENTER}")
Windows("Etienne.xls").Activate
Sheets("rendements.brut").Select
Cells.Select
Selection.Clear
Windows("Rapport trimestriel.xls").Activate
Sheets("rendements.brut").Select
Cells.Select
Selection.Copy
Windows("Etienne.xls").Activate
Sheets("rendements.brut").Select
Cells.Select
ActiveSheet.Paste
With Range("A2:BA300")
.Select
.Copy
End With
Selection.PasteSpecial Paste:=xlPasteValues
Range("A1").Select

Etienne
 

Etienne2323

XLDnaute Impliqué
Re : Transférer les noms de cellules

Bonjour,
je vais donner un peu plus de précision peut-être.

Rapport trimestriel.xls est le fichier de base. C'est de lui que je dois prendre mes données.
Etienne.xls est mon fichier secondaire. C'est dans lui que je dois copier les données.
Mon onglet s'appelle "rendements.brut" dans les deux fichiers.

Cordialement

Etienne
 

pierrejean

XLDnaute Barbatruc
Re : Transférer les noms de cellules

Re

A tester

Code:
Sub report_noms()
For n = 1 To Workbooks("Etienne.xls").Names.Count
 If InStr(Workbooks("Etienne.xls").Names(n).RefersToLocal, "rendements.brut!$M$") <> 0 Then
   nom = Workbooks("Etienne.xls").Names(n).Name
   ref = Workbooks("Etienne.xls").Names(n).RefersToR1C1
   Workbooks("Rapport trimestriel.xls").Names.Add Name:=nom, RefersToR1C1:=ref
 End If
Next n
End Sub

End Sub

@ tototiti

Sauf erreur de ma part ton code recopie tous les noms de la page et pas seulement ceux de la colonne M
 
Dernière édition:

Etienne2323

XLDnaute Impliqué
Re : Transférer les noms de cellules

Bonjour tototiti,
j'ai essayé le code que tu m'as fourni mais il n'a pas fonctionné. Quand je parle de noms de cellules, il s'agit bien du petit encadré blanc dans le coin supérieur gauche qui s'appelle "zone de nom" ? Une idée de ce qui n'a pas marché ?

Etienne
 

Discussions similaires

Réponses
17
Affichages
678

Statistiques des forums

Discussions
312 336
Messages
2 087 388
Membres
103 534
dernier inscrit
Kalamymustapha