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 !
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.
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 😀.
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