Graeme a un classeur qui contient un grand nombre (plus de 120) plages nommées. Il souhaite copier les noms et définitions des plages dans un autre classeur. Ainsi, après la copie, la plage nommée MyRange1, qui fait référence à la plage C7: H22 dans le classeur d’origine, existera dans le classeur cible et fera référence à la même plage que celle du classeur d’origine. Rien d’autre ne doit être copié du classeur d’origine vers la cible – uniquement les noms et définitions de plage.

Le moyen le plus simple de procéder consiste à utiliser une macro qui parcourt chacun de vos noms définis et copie la définition de nom dans le classeur cible. Voici un exemple:

Sub CopyNames()

Dim Source As Workbook     Dim Target As Workbook     Dim n As Name

Set Source = ActiveWorkbook     Set Target = Workbooks("Book2.xlsx")



For Each n In Source.Names         Target.Names.Add Name:=n.Name, RefersTo:=n.Value     Next End Sub

Notez que la majorité du travail dans la macro est effectuée dans la boucle For Each qui parcourt tous les noms définis. Il crée le nom dans le classeur cible et lui attribue la même affectation que dans le classeur source (contenu dans la propriété Value).

Il convient de noter que, par défaut, les plages nommées incluent le nom de la feuille de calcul dans la propriété Value. Si le classeur source a une plage nommée qui fait référence, par exemple, à Sheet4 et qu’il n’y a pas de Sheet4 dans le classeur cible, l’ajout du nom échoue. La macro ne génère pas d’erreur; il ne crée tout simplement pas la nouvelle plage nommée. La solution consiste à (a) s’assurer que le classeur cible contient les mêmes noms de feuille que le classeur source ou (b) modifier la macro afin qu’elle reconnaisse qu’il manque des feuilles et prend toute action appropriée.

Si vous préférez ne pas créer de macro, la méthode la plus simple consiste peut-être à copier vos feuilles de calcul du classeur source vers un classeur cible.

Excel copie généralement les plages nommées avec les feuilles de calcul. La seule fois où cette approche ne serait pas satisfaisante est si le classeur cible contient déjà des feuilles de calcul portant les mêmes noms que les feuilles de calcul que vous souhaitez copier. Dans ce cas, il serait préférable d’utiliser l’approche macro.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2469) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Copying_Named_Ranges [Copie des plages nommées].