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

Résolu
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.

3 réponses

  1. Yoskopolite Messages postés 92 Statut Membre 8
     
    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
    1. Sloubi76 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   136
       
      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
  2. Yoskopolite Messages postés 92 Statut Membre 8
     
    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
  3. Sloubi76 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   136
     
    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