Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Plages nommées : reporter du fichier A vers fichier B

  • Initiateur de la discussion Initiateur de la discussion DoubleZero
  • Date de début Date de début

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 !

DoubleZero

XLDnaute Barbatruc
Bonjour à toutes et à tous,

A l’ouverture du fichier A, comportant de multiples champs nommés, le message « … contenu illisible ... » s’affiche régulièrement, malgré les prétendues réparations effectuées par Excel.

Suivant les conseils de ROGER2327, dans cette discussion, je crée un nouveau fichier B et recopie manuellement les macros, à la fois classiques et événementielles, vers ce dernier destiné à remplacer le fichier « malade » (dont les sauvegardes sont, elles aussi, corrompues !).

Serait-il possible, s’il vous plaît, de reporter par macro les plages nommées de A vers B ?

Je vous remercie pour l'aide qu'il vous sera permis de m'apporter.

A bientôt 🙂
 

Pièces jointes

  • A.xls
    A.xls
    33.5 KB · Affichages: 38
  • B.xls
    B.xls
    19 KB · Affichages: 46
  • A.xls
    A.xls
    33.5 KB · Affichages: 39
  • B.xls
    B.xls
    19 KB · Affichages: 55
  • A.xls
    A.xls
    33.5 KB · Affichages: 43
  • B.xls
    B.xls
    19 KB · Affichages: 59
Re : VBA - Plages nommées : reporter du fichier A vers fichier B

Bonsoir
J'ai écrit vite fait cette procédure dans un module de B, à lancer lorque A (vérolé) est actif.
Ça ma bien copié les noms dans B.
VB:
Sub RapatrierNoms()
Dim Nom As Name
For Each Nom In ActiveWorkbook.Names
   ThisWorkbook.Names.Add Nom.Name, Nom.RefersTo
   Next Nom
End Sub
À +
 
Re : VBA - Plages nommées : reporter du fichier A vers fichier B

Bonjour, Robert, Dranreb, le Forum,

Je vous remercie pour votre aide et ne manquerai pas de vous tenir au courant, dès que possible, des résultats de mes essais 😱.

A bientôt 🙂🙂
 
Re : VBA - Plages nommées : reporter du fichier A vers fichier B

Bonsoir tout le monde,

Un petit utilitaire qui m'a très souvent aidé : Vba Code Cleaner

J'ai eu à plusieurs fois des fichiers qui, à force d'être modifiés, bidouillés, triturés, ne voulaient plus s'enregistrer correctement.
Vba Code Cleaner exporte chaque module, module de classe, feuille et userform avant de les réimporter.

On se retrouve avec un fichier parfaitement sain, identique à l'original et qui pèse parfois la moitié du fichier d'origine.
 
Re : VBA - Plages nommées : reporter du fichier A vers fichier B

Bonjour à toutes et à tous,

@ Robert,

Le code fourni dans la discussion citée en #2 fonctionne parfaitement pour les champs fixes. Les plages dynamiques, quant à elles, sont ignorées 😕.

Peut-être est-ce la raison pour laquelle ce message apparaît :
"Erreur d'exécution '9' :
L'indice n'appartient pas à la sélection."

La ligne, ci-après, est surlignée :

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

Bien évidemment, je ne sais quelle(s) modification(s) apporter 😱.

@ Dranreb,

La procédure écrite "vite fait" fonctionne parfaitement quel que soit le type de champ (fixe ou dynamique).

@ GeoTrouvePas,

Je ne connais pas cet utilitaire que je testerai rapidement.

Je vous remercie 1000 fois, Robert, Dranreb et GeoTrouvePas pour avoir répondu "présent" à mon appel et pour vos solutions respectives, rangées dans mon coffre à trésors 😀.

A bientôt 🙂🙂
 
Re : VBA - Plages nommées : reporter du fichier A vers fichier B

Bonjour à tous,

Je ne connais pas cet utilitaire que je testerai rapidement.

J'osais à peine en parler car je pensais qu'à peu près tous les XLDiens connaissaient déjà.

A mon avis, cela devrait répondre parfaitement à ta problème. Pour info, une fois installé, tu trouveras l'option "Clean Project..." directement dans le menu "Option" de l'éditeur Vba. Fais bien attention à la taille de ton projet avant et après le nettoyage. C'est assez impressionnant.

En regardant de plus près on constate souvent que le simple fait d'ouvrir et d'enregistrer un classeur (sans y faire de modification) suffit à lui faire prendre quelques octets voir même plus. Ce résultat est encore plus marqué lorsqu'on supprime des modules ou des feuilles. Avec Vba Code Cleaner, tu obtiens un fichier épuré, comme si tu avais recopié l'intégralité de tes feuilles et de ton code dns un nouveau fichier "sain".
 
- 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

O
Réponses
0
Affichages
908
OSCAR57
O
M
Réponses
4
Affichages
759
Moriaben
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…