COMMENT DUPLIQUER 500 FOIS (OU PLUS !) UNE FEUILLE DE CALCUL EXCEL EN 1 CLIC

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Dans ce tutoriel, je vais vous montrer comment automatiser l’insertion de nouvelles feuilles de calculs dans un classeur de manière automatique. Nous verrons ainsi comment insérer une toute nouvelle feuille de calculs, complètement vide, mais également comment dupliquer une feuille active, un grand nombre de fois ! Et l’histoire de simplifier automatiquement le process de création de la macro, nous utiliserons l’outil de création de macro automatique intégré à Excel !

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

 

 

1. Créer une nouvelle feuille, sans saisir de ligne de code

Pour commencer, nous allons créer deux macros de manière automatique, en utilisant directement l’enregistreur de macro d’Excel.

Comme nous l’avons déjà étudié au tout début de la formation sur l’apprentissage de VBA disponible gratuitement sur excelformation.fr, cet outil permet d’enregistrer des séquences d’actions pour les convertir en lignes de code VBA que nous pourrons ensuite reproduire à volonté en relançant ces macros.

Pour utiliser l’enregistreur de macro, cliquez simplement sur le bouton correspondant dans la barre d’état qui se trouve tout en bas de l’interface d’Excel.

Excel formation - Insérer nouvelle feuilles de calculs - 01

Puis dans la fenêtre qui s’affiche, nous pouvons attribuer un nom à la macro (ici tout simplement insererNouvelleFeuilleVide), et éventuelle insérer une description

Excel formation - Insérer nouvelle feuilles de calculs - 02

Dès lors que nous aurons validé en appuyant sur le bouton OK, l’enregistrement va démarrer.

Nous pouvons vérifier la bonne mise en place de cet enregistrement d’un coup d’œil, car l’icône d’enregistrement dans la barre d’état a maintenant la forme d’un carré

Excel formation - Insérer nouvelle feuilles de calculs - 03

A partir de maintenant, toutes les actions que nous allons réaliser au sein d’Excel vont être traduit en ligne de commande VBA.

Cette première macro va être très simple, nous allons uniquement insérer une nouvelle feuille de calcul vide, en cliquant simplement sur le symbole plus (+), situé à droite des onglets de feuilles de calculs

Excel formation - Insérer nouvelle feuilles de calculs - 04

Une fois la nouvelle feuille de calcul inséré, nous pouvons stopper l’enregistrement en cliquant sur l’icône de fin d’enregistrement (le carré dans la barre d’état Excel)

Excel formation - Insérer nouvelle feuilles de calculs - 05

Ensuite, nous allons réitérer l’opération, mais cette fois-ci pour dupliquer la feuille de calcul active :

  • Nous démarrons un nouvel enregistrement sous le nom de dupliquerLaFeuilleActive

Excel formation - Insérer nouvelle feuilles de calculs - 06

  • Ensuite, nous dupliquons la feuille active en effectuant un clic droit sur l’onglet de celle-ci et nous choisissons l’option Déplacer ou copier

Excel formation - Insérer nouvelle feuilles de calculs - 07

  • Dans la fenêtre qui s’affiche, nous choisissons d’insérer cette nouvelle feuille en tout fin de classeur (choisir « (en dernier) » dans le menu « Avant la feuille »), et nous cochons l’option « Créer une copie »

Excel formation - Insérer nouvelle feuilles de calculs - 08

  • Enfin, nous pouvons valider la création de la copie en appuyant sur le bouton OK

Et pour finir, nous pouvons arrêter l’enregistreur de macro.

 

2. Analyse et amélioration des macros VBA

Ensuite, pour visionner les macros que nous venons d’insérer, nous nous rendons dans l’outil de développement VBE (pour Visual Basic Editor), en appuyant sur les touches [Alt]+[F11].

Nous pouvons alors nous rendre compte que les deux macros ont effectivement été insérées, dans un module dédié qui porte le nom de Module1 :

Excel formation - Insérer nouvelle feuilles de calculs - 09

 

2.1. La macro insererNouvelleFeuilleVide

 

La macro insererNouvelleFeuilleVide est très simple.

Elle est en effet composée d’une ligne, qui consiste - comme nous l’avons demandé - de créer une nouvelle feuille juste après la feuille active.

Maintenant, nous souhaitons être en mesure d’insérer non pas une seule feuille, mais que l’utilisateur à l’origine du lancement de la macro puisse préciser directement le nombre de feuilles qu’il souhaite insérer.

Pour cela, nous allons encapsuler cette ligne de code dans une boucle For… Next.

Ce type de boucle permet de répéter une même opération tant qu’une condition est remplie, tout en incrémentant la valeur d’une variable.

 

    For i = 1 To 3
        …
    Next

Dans cet exemple, nous avons une variable qui porte le nom de i.

Nous donnons en premier lieu à cette variable la valeur de 1.

Puis nous exécutons une série d’instructions tant que cette valeur est inférieure ou égale à 3.

Le code à répéter est saisi entre cette ligne For et la ligne Next.

Ainsi pour créer trois feuilles vides, nous insérons donc la ligne de création de la nouvelle feuille à l’intérieur de cette boucle :

 

    For i = 1 To 3
        Sheets.Add After:=ActiveSheet
    Next

Ensuite, étant donné que nous avons utilisé une nouvelle variable i, nous devons déclarer celle-ci avant de pouvoir l’utiliser avec le mot-clé Dim :

 

Dim i As Integer

Cette ligne est à insérer juste avant la boucle.

Enfin, étant donné que nous souhaitons que ce soit l’utilisateur lui-même qui précise le nombre de feuille à insérer, nous allons le lui demander !

Pour proposer à l’utilisateur de saisir une information, nous utilisons une méthode InputBox :

 

    For i = 1 To InputBox("Combien  de nouvelles feuilles voulez-vous insérer ?")

Et voilà !

Pour tester cette procédure, il suffit de se rendre sur la feuille de calcul afin d’insérer un bouton de lancement de macro (par exemple une zone de texte : Menu Insertion / Zone de texte) :

Puis nous effectuons un clic droit sur cette zone de texte afin de sélectionner Affecter une macro…

Excel formation - Insérer nouvelle feuilles de calculs - 10

Dans cette fenêtre, nous choisissons la macro qui correspond (« insererNouvelleFeuilleVide ») et nous cliquons sur le bouton OK.

Excel formation - Insérer nouvelle feuilles de calculs - 11

Lorsque nous cliquons sur la zone de texte, une fenêtre nous demande alors combien de nouvelles feuilles vides nous souhaitons insérer :

Excel formation - Insérer nouvelle feuilles de calculs - 12

Et lorsque nous validons la création, de nouvelles feuilles seront effectivement ajoutées au classeur, dont le nombre dépend directement de la valeur saisie par l’utilisateur !

Excel formation - Insérer nouvelle feuilles de calculs - 13

 

2.2. La macro dupliquerLaFeuilleActive

 

À présent, intéressons-nous à la seconde macro que nous avons généré grâce à l’enregistreur de macro, il s’agit de la macro commande qui duplique la feuille en cours d’utilisation : « dupliquerLaFeuilleActive ».

Excel formation - Insérer nouvelle feuilles de calculs - 14

Celle-ci est composée de deux lignes.

La première d’entre elles permet de sélectionner la feuille active pour pouvoir la dupliquer.

En réalité cette ligne est inutile ici car le nom de la feuille est précisé explicitement sur la ligne suivante.

Nous pouvons simplement la supprimer.

Quant à la seconde ligne, nous pouvons constater que celle-ci effectue une copie de la feuille qui porte le nom d’ « excelformation.fr ».

Or nous souhaitons dupliquer la feuille active et non pas forcément une feuille dénommée.

Nous allons donc appliquer cette méthode Copy sur l’objet ActiveSheet, lequel correspond à la feuille de calcul en cours de travail :

 

    ActiveSheet.Copy After:=Sheets(2)

Puis, pour insérer la nouvelle feuille juste après la feuille active, nous allons à nouveau utiliser ActiveSheet en tant qu’argument after :

 

        ActiveSheet.Copy after:=ActiveSheet

Enfin, nous allons encapsuler cette ligne dans une boucle For, exactement comme nous l’avons fait pour la macro précédente :

 

    Dim i As Integer
    For i = 1 To InputBox("Combien de  nouvelles feuilles voulez-vous insérer ?")
        ActiveSheet.Copy after:=ActiveSheet
    Next

Après avoir lié cette seconde macro sur un nouveau bouton, nous pouvons maintenant tester :

Excel formation - Insérer nouvelle feuilles de calculs - 15

Et voilà, les nouvelles feuilles ont maintenant été insérées !

Excel formation - Insérer nouvelle feuilles de calculs - 16

 

 

 



Articles qui pourraient vous intéresser

L’erreur cachée qui plombe vos tableaux Excel (et comment l’éviter)
Comment entourer automatiquement cellules non conformes Excel sans MF conditionnelle ni formule ?
Comment créer un tableau de bord commercial intelligent avec Excel ?
Comment créer un graphique dessiné à la main avec Excel ?
Comment créer un graphique de distribution en 5 minutes chrono ?
L’astuce Excel pour imprimer le tableau que vous voulez en un clic !
Comment gérer ses comptes sur Excel avec le « Suivi du budget familial »
Comment créer facilement des QR codes sans VBA avec Excel ?
Transformez vos données en graphique tornade interactif facilement sur Excel !
Comment créer un graphique Iceberg dans Excel ?
Comment créer un graphique dynamique en quelques minutes sur Excel sans VBA ni TCD ?
Comment créer des feux de signalisation tricolores dynamiques dans Excel sans VBA ?

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2024 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.