[Excel] déplacer feuille et plages nommées
Résolu
Yoskopolite
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
-
Yoskopolite Messages postés 83 Date d'inscription Statut Membre Dernière intervention -
Yoskopolite Messages postés 83 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'utilise un fichier excel comprenant une feuille A pour la saisie d'information, dont toutes les listes sont alimentées (propriété listfillrange) à partir de plages nommées situées sur une autre feuille B du même classeur.
Une autre personne apporté des modifications à la feuille comprenant les plages nommées, tandis que j'ai retravaillé sur divers éléments du fichier dont la feuille de saisie. Appelons sa version Bbis.
Mon problème : lorsque je déplace la feuille Bbis avec les plages nommes de mon collègue vers mon classeur, les plages nommées existent toujours sur Bbis, mais les listes de A qui se basent sur ces plages n'arrivent plus à faire le lien vers les plages en question et je me retrouve donc avec des listes vides.
J'ai bien pensé à supprimer ma version de la feuille B avec les plages nommées au préalable avant d'importer Bbis.
Auriez-vous une idée de comment refaire marcher mes listes ? D'avance merci de vos réponses.
PS : j'utilise Excel 2003, et nous n'avons pas employé le partageur de classeur lors de l'édition pour des raisons techniques autres.
J'utilise un fichier excel comprenant une feuille A pour la saisie d'information, dont toutes les listes sont alimentées (propriété listfillrange) à partir de plages nommées situées sur une autre feuille B du même classeur.
Une autre personne apporté des modifications à la feuille comprenant les plages nommées, tandis que j'ai retravaillé sur divers éléments du fichier dont la feuille de saisie. Appelons sa version Bbis.
Mon problème : lorsque je déplace la feuille Bbis avec les plages nommes de mon collègue vers mon classeur, les plages nommées existent toujours sur Bbis, mais les listes de A qui se basent sur ces plages n'arrivent plus à faire le lien vers les plages en question et je me retrouve donc avec des listes vides.
J'ai bien pensé à supprimer ma version de la feuille B avec les plages nommées au préalable avant d'importer Bbis.
Auriez-vous une idée de comment refaire marcher mes listes ? D'avance merci de vos réponses.
PS : j'utilise Excel 2003, et nous n'avons pas employé le partageur de classeur lors de l'édition pour des raisons techniques autres.
A voir également:
- [Excel] déplacer feuille et plages nommées
- Déplacer colonne excel - Guide
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Si et excel - Guide
3 réponses
Ouais. C'est un peu relou, mais je suppose qu'il n'y a pas d'autre solution ^^'
Merci à toi pour cette idée.
Merci à toi pour cette idée.
Effectivement, la seule solution est bien une nouvelle définition des plages.
Voici comment j'ai procédé pour résoudre mon problème :
1 - supprimer la feuille qui contient les plages nommées
2 - utiliser une macro pour supprimer toutes les plages nommées dont la plage commence par "#REF!" (la référence est pétée car le nom de la plage est toujours présent même si on a supprimé la feuille contenant la plage)
3 - importer la nouvelle version de la feuille.
Pour l'étape 2, j'ai réalisé ça ainsi (version simplifiée de ma fonction) :
Encore merci à toi
Attention cependant : lorsqu'on importe une feuille, il amène avec lui tous les noms définis du workbook source MEME ceux qui ne sont pas sur la feuille qu'on transfère. Il faut donc aussi veiller à ce qu'il n'y ait pas de conflit de noms sur les autres feuilles de nos workbooks...
Je trouve qu'Excel gère vraiment mal cette histoire de noms définis...
Voici comment j'ai procédé pour résoudre mon problème :
1 - supprimer la feuille qui contient les plages nommées
2 - utiliser une macro pour supprimer toutes les plages nommées dont la plage commence par "#REF!" (la référence est pétée car le nom de la plage est toujours présent même si on a supprimé la feuille contenant la plage)
3 - importer la nouvelle version de la feuille.
Pour l'étape 2, j'ai réalisé ça ainsi (version simplifiée de ma fonction) :
Dim lo_Nom As Excel.Name 'parcour des noms définis du workbook For Each lo_Nom In monWorkbook.Names 'si la feuille du nom défini est un "#REF!" alors on le supprime If InStr(lo_Nom.RefersToR1C1, "#REF") > 0 Then lo_Nom.Delete End If Next End Function
Encore merci à toi
Attention cependant : lorsqu'on importe une feuille, il amène avec lui tous les noms définis du workbook source MEME ceux qui ne sont pas sur la feuille qu'on transfère. Il faut donc aussi veiller à ce qu'il n'y ait pas de conflit de noms sur les autres feuilles de nos workbooks...
Je trouve qu'Excel gère vraiment mal cette histoire de noms définis...
Certe un peu lourd, ou alors passer par une suppression de la feuille B avant l'import de la Bbis, comme vous l'indiquez, mais il faut en passer par une nouvelle définition des plages nommées.
A tester
@ +