[Excel] déplacer feuille et plages nommées

Résolu/Fermé
Yoskopolite Messages postés 83 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 9 novembre 2012 - 1 oct. 2009 à 17:27
Yoskopolite Messages postés 83 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 9 novembre 2012 - 6 oct. 2009 à 13:22
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.
A voir également:

3 réponses

Yoskopolite Messages postés 83 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 9 novembre 2012 8
5 oct. 2009 à 08:27
Ouais. C'est un peu relou, mais je suppose qu'il n'y a pas d'autre solution ^^'

Merci à toi pour cette idée.
0
Sloubi76 Messages postés 1366 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 10 décembre 2016 135
5 oct. 2009 à 18:35
Bonsoir,

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

@ +
0
Yoskopolite Messages postés 83 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 9 novembre 2012 8
6 oct. 2009 à 13:22
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...
0
Sloubi76 Messages postés 1366 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 10 décembre 2016 135
1 oct. 2009 à 20:55
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.

@ +
-1