[Excel] déplacer feuille et plages nommées
Résolu
Yoskopolite
Messages postés
92
Statut
Membre
-
Yoskopolite Messages postés 92 Statut Membre -
Yoskopolite Messages postés 92 Statut Membre -
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.
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. -
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) :
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... -
Bonsoir,
Le problème vient des références qui n'évoluent de feuilB à feuilBbis.
La solution serait d'automatiser via une macro la modification des feuille de référence pour que les listes retrouvent le fonctionnement attendu.
@ +