Copier coller données d'un onglet en conservant les noms insérés

jozerebel

XLDnaute Occasionnel
Bonjour,

J'ai deux fichiers excel. Je souhaiterais copier les cellules d'un onglet du fichier B vers un onglet du fichier A.

J'ai ajouter des noms à certaines plages dans le fichier B et quand je copie colle, je perds ces noms : on m'affiche pas exemple : =#REF!$AL$2:$AL$81 puisqu'il ne reconnait plus la feuille.

COmment éviter ce problème?

D'avance merci.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier coller données d'un onglet en conservant les noms insérés

Bonjour Jozerebel, bonjour le forum,

Par formule je ne sais pas faire... Le code ci-dessous, à adapter à ton cas, permet de récupérer toutes les plage nommées d'un classeur et de les passer à un autre. Il faut que les deux classeurs soient ouverts et que le nom des onglets qui contiennent des plages nommée soient identiques :
Code:
Sub Macro1()
Dim cs As Workbook 'déclare la variable cs (Classeur Source)
Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
Dim pn As Name 'déclare la variale pn (Plage Nommée)
Dim no As String 'déclare la varaible no (Nom de l'Onglet)
Dim ad As String 'déclare la variable ad (ADresse)

Set cs = Workbooks("le_nom_du_classeur_source.xls") 'définit le classeur source (à adapter à ton cas)
Set cc = Workbooks("le_nom_du_classeur_cilbe.xls") 'définit le classeur cible (à adapter à ton cas)
For Each pn In cs.Names 'boucle sur toutes les plage nommée du classeur source
    no = Mid(Split(pn, "!")(0), 2) 'récupère le nom de l'onglet de la plage nommée
    ad = Split(pn, "!")(1) 'récupère l'adresse de la plage nommée
    cc.Sheets(no).Range(ad).Name = pn.Name 'nomme, dans l'onglet cible, la plage définie par l'adresse ad de l'onglet on du même nom que la plage nommée pn
Next pn 'prochaine plage nommée du classeur source
End Sub
 

jozerebel

XLDnaute Occasionnel
Re : Copier coller données d'un onglet en conservant les noms insérés

Salut,

Alors, je ne sais pas trop pourquoi mais la macro bug et me dit 'erreur 9 l'indice n'appartient pas à la sélection'.

Mon objectif serait d'aller chercher l'onglet /ou les plages nommées dans un fichier B sans l'ouvrir... de manière à ce que les formules et les listes déroulantes de mon fichier A fonctionnent (j'ai plusieurs fichiers qui doivent utiliser la même base de données nommées, et cela m'éviterait de devoir modifier à chaque fois tous les fichiers un à un...)

D'avance merci pour votre aide.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier coller données d'un onglet en conservant les noms insérés

Bonjour Jozerebel, bonjour le forum,

As-tu au moins lu le code que je t'avais proposé ?
il fallait bien évidement dans :
Set cs = Workbooks("le_nom_du_classeur_source.xls") 'définit le classeur source (à adapter à ton cas)
remplacer le_nom_du_classeur_source.xls par LE VÉRITABLE NOM DE TON FICHIER SOURCE QUE TU N'A PAS DAIGNÉ FOURNIR LORS DE TQA REQUÊTE...
et dans la ligne :
Code:
Set cc = Workbooks("le_nom_du_classeur_cilbe.xls") 'définit le classeur cible (à adapter à ton cas)
remplacer le_nom_du_classeur_cilbe.xls par LE VÉRITABLE NOM DE TON FICHIER CIBLE QUE TU N'AS TOUJOURS PAS DAIGNÉ FOURNIR LORS DE TA REQUÊTE...

L'erreur 9 devrait diparaître.
 

jozerebel

XLDnaute Occasionnel
Re : Copier coller données d'un onglet en conservant les noms insérés

Bonjour,

Les deux noms ont bien été modifiés dans la macro.

Je joins deux fichiers minimalistes pour compréhension.

Sachant que l'objectif serait d'aller chercher dansle fichier B sans l'ouvrir...Enfin, sans incidence pour l'usager.
 

Pièces jointes

  • A.xls
    17.5 KB · Affichages: 40
  • B.xls
    17.5 KB · Affichages: 52
  • A.xls
    17.5 KB · Affichages: 47
  • B.xls
    17.5 KB · Affichages: 51
  • A.xls
    17.5 KB · Affichages: 56
  • B.xls
    17.5 KB · Affichages: 54

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier coller données d'un onglet en conservant les noms insérés

Bonjour Jozerebel, bonjour le forum,

Tu n'avais jamais précisé que c'était sans ouvrir le fichirr source... En effet, le code que je te propose ne fonctionnera pas si les deux fichiers ne sont pas ouverts.
Sinon il fonctionne très bien avec les deux fichiers ouverts. J'ai placé la marco en actualisant les noms des fichiers dans le fichier B.xls. Ouvre les deux fichiers et lance la macro...
 

Pièces jointes

  • A.xls
    29 KB · Affichages: 50
  • B.xls
    34 KB · Affichages: 56
  • A.xls
    29 KB · Affichages: 51
  • B.xls
    34 KB · Affichages: 50
  • A.xls
    29 KB · Affichages: 48
  • B.xls
    34 KB · Affichages: 56

Discussions similaires

Réponses
6
Affichages
402

Statistiques des forums

Discussions
312 213
Messages
2 086 302
Membres
103 174
dernier inscrit
OBUTT