Macro pour insérer une feuille de calcul - Conseils Excel

Table des matières

"Stuck in NJ" a posé la question de cette semaine:

Je crée un classeur Excel qui contient des graphiques de chiffres de vente. La première feuille de calcul Excel correspond au premier territoire de vente de l'entreprise (par exemple, FL01.) Le nom de l'onglet de la feuille de calcul (ainsi que la cellule A1) est le numéro de territoire de vente FL01. Les données qui pilotent les graphiques sont à droite (en dehors de la plage imprimable que j'ai définie) et sont remplies à partir d'un autre classeur Excel à l'aide de RECHERCHEV avec le numéro de territoire de vente FL01 dans la cellule A1 comme clé de recherche. Je dois ajouter au classeur 76 feuilles de calcul identiques (une pour chaque territoire de vente) de sorte que le nom de l'onglet et la cellule A1 de chaque feuille correspondent aux numéros de territoire de vente successifs (par exemple, FL01, FL02, LK01, LK02.) Comment faire cela dans un manière automatisée?

Ceci est facilement accompli avec une macro VBA, mais permettez-moi de couvrir le conseil pour le faire manuellement. Une fois que vous avez configuré une feuille avec des plages de formatage et d'impression, vous pouvez facilement dupliquer la feuille en cliquant avec le bouton droit de la souris sur l'onglet de cette feuille. Dans le menu qui apparaît, choisissez Déplacer ou Copier. Dans la boîte de dialogue Déplacer ou copier, sélectionnez "(déplacer vers la fin)" et cochez la case "Créer une copie", puis cliquez sur OK. Une copie de votre feuille avec mise en forme sera ajoutée en tant que nouvelle feuille de calcul dans votre classeur. (Pour accélérer ce processus, maintenez la touche Ctrl enfoncée tout en faisant glisser l'onglet de la feuille de calcul vers la droite.) Vous souhaiterez généralement renommer la feuille. Cliquez avec le bouton droit sur le nouvel onglet, choisissez Renommer et saisissez un nom significatif.

Pour que la macro Excel fonctionne, elle a besoin d'une liste de territoires. Avant d'écrire la macro, insérez une nouvelle feuille dans ce livre nommée Data. Dans la cellule A1, saisissez le 2ème territoire de vente (FL02 dans votre exemple). Continuez à saisir tous les territoires de vente en bas de la colonne A. Ne laissez aucune ligne vide.

Insérez une nouvelle macro et copiez ce code:

Public Sub CopyIt() Sheets("Data").Select ' Determine how many territories are on Data sheet FinalRow = Range("A65000").End(xlUp).Row ' Loop through each territory on the data sheet For x = 1 To FinalRow LastSheet = Sheets.Count Sheets("Data").Select ThisTerr = Range("A" & x).Value ' Make a copy of Fl01 and move to end Sheets("FL01").Copy After:=Sheets(LastSheet) ' rename the sheet and set A1 = to the territory name Sheets(LastSheet + 1).Name = ThisTerr Sheets(ThisTerr).Select Range("A1").Value = ThisTerr Next x End Sub

La macro utilise la commande Sheets (). Copy qui fait la même chose que de cliquer sur Déplacer ou Copier manuellement. Avant de faire chaque copie, je trouve le nombre de feuilles en utilisant la propriété Sheets.Count. Je sais que s'il y a 56 feuilles et que j'insère une nouvelle feuille, elle sera référencée comme Sheets (57). Je trouve quelque peu imprévisible de deviner comment Excel nommera la nouvelle feuille, j'utilise donc des numéros d'index numériques pour identifier la feuille. Une fois que j'ai renommé la nouvelle feuille avec "Sheets (LastSheet + 1) .Name = ThisTerr", je peux alors revenir à ma méthode préférée de référence à la feuille en utilisant son nom.

Notez que la liste des territoires ne doit pas contenir FL01 dans la liste. Essayer de renommer une copie une copie de FL01 avec le même nom provoquera une erreur dans la macro.

Articles intéressants...