[Excel] déplacer feuille et plages nommées [Résolu/Fermé]

Signaler
Messages postés
83
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2012
-
Messages postés
83
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2012
-
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.

3 réponses

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

Merci à toi pour cette idée.
Messages postés
1367
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2016
112
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

@ +
Messages postés
83
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2012
7
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...
Messages postés
1367
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2016
112
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.

@ +