Copier tous les noms de plages par programmation dans Excel

Résumé

Dans Microsoft Office Excel, vous pouvez créer une macro Microsoft Visual Basic pour Applications (VBA) que vous pouvez utiliser pour copier tous les noms de plages du classeur actif vers un autre classeur.

Informations supplémentaires

Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie expresse ou implicite. Cela inclut, sans y être limité, les garanties implicites de commercialisation et d’adaptation à un but en particulier. Cet article considère que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support Microsoft peuvent expliquer la fonctionnalité d’une procédure en particulier. Toutefois, ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.

Pour créer et utiliser une macro afin de copier tous les noms de plage du classeur actif vers un autre classeur, suivez les étapes décrites dans l’exemple suivant :

  1. Démarrez Excel, puis, dans un nouveau classeur, cliquez sur sélectionner la cellule A1.

  2. Effectuez l’une des opérations suivantes :

    • Dans Microsoft Office Excel 2007, cliquez sur l’onglet Formules , puis cliquez sur Définir un nom dans le groupe Noms définis .
    • Dans Microsoft Office Excel 2003 dans et les versions antérieures de Microsoft Excel, pointez sur Nom dans le menu Insertion , puis cliquez sur Définir.
  3. Dans la boîte de dialogue Définir des noms , dans la zone Noms dans le classeur , tapez Range1, puis cliquez sur OK.

  4. Sélectionnez la cellule B1.

  5. Effectuez l’une des opérations suivantes :

    • Dans Excel 2007, cliquez sur l’onglet Formules , puis cliquez sur Définir un nom dans le groupe Noms définis .
    • Dans Excel 2003 et dans les versions antérieures d’Excel, pointez sur Nom dans le menu Insertion , puis cliquez sur Définir.
  6. Dans la boîte de dialogue Définir des noms , dans la zone Noms dans le classeur , tapez Range2, puis cliquez sur OK.

  7. Appuyez sur Alt+F11 pour démarrer l’éditeur Visual Basic.

  8. Dans le menu Insertion, cliquez sur Module.

  9. Dans la feuille du module, tapez le code suivant :

    Sub Copy_All_Defined_Names()
       ' Loop through all of the defined names in the active
       ' workbook.
         For Each x In ActiveWorkbook.Names
          ' Add each defined name from the active workbook to
          ' the target workbook ("Book2.xls" or "Book2.xlsm").
          ' "x.value" refers to the cell references the
          ' defined name points to.
          Workbooks("Book2.xls").Names.Add Name:=x.Name, _
             RefersTo:=x.Value
       Next x
    End Sub
    
  10. Appuyez sur Alt+F11 pour revenir à Excel.

  11. Effectuez l’une des opérations suivantes :

    • Dans Excel 2007, cliquez sur le bouton Microsoft Office, pointez sur Enregistrer sous, cliquez sur Excel Macro-Enabled Classeur, puis enregistrez le classeur sous Book1.xlsm.
    • Dans Excel 2003 et dans les versions antérieures d’Excel, cliquez sur Enregistrer dans le menu Fichier , puis enregistrez le classeur en tant que Book1.xls.
  12. Effectuez l’une des opérations suivantes :

    • Dans Excel 2007, cliquez sur le bouton Microsoft Office, sur Nouveau, sur Classeur vierge, puis sur Créer.
    • Dans Excel 2003, cliquez sur Nouveau dans le menu Fichier , puis cliquez sur Classeur vide dans le volet Office Nouveau classeur .
    • Dans Excel 2002 et dans les versions antérieures d’Excel, cliquez sur Nouveau dans le menu Fichier , sur Classeur, puis sur OK.
  13. Effectuez l’une des opérations suivantes :

    • Dans Excel 2007, cliquez sur le bouton Microsoft Office, pointez sur Enregistrer sous, cliquez sur Excel Macro-Enabled Classeur, puis enregistrez le classeur sous Book2.xlsm.
    • Dans Excel 2003 et dans les versions antérieures d’Excel, cliquez sur Enregistrer sous dans le menu Fichier , puis enregistrez le classeur en tant que Book2.xls.
  14. Basculez vers Book1.

    Remarque

    Vous devrez peut-être réduire ou restaurer Book2 pour voir le bouton Book1.

  15. Effectuez l’une des opérations suivantes :

    • Dans Excel 2007, cliquez sur l’onglet Développeur , puis sur Macros.

      Remarque

      Si l’onglet Développeur n’est pas affiché, cliquez sur le bouton Microsoft Office, cliquez sur Options Excel, sur Populaire, cliquez sur pour sélectionner l’onglet Afficher le développeur dans la zone case activée ruban, puis cliquez sur OK.

    • Dans Excel 2003 et dans les versions antérieures d’Excel, pointez sur Macro dans le menu Outils , puis cliquez sur Macros.

  16. Dans la liste Nom de la macro , cliquez sur Copy_All_Defined_Names, puis sur Exécuter.

  17. Basculez vers Book2 et notez que la cellule A1 est nommée Range1 et que la cellule B1 est nommée Range2.