Macro para inserir planilha - Dicas do Excel

Índice

"Stuck in NJ" fez a pergunta desta semana:

Estou criando uma pasta de trabalho do Excel que contém gráficos de números de vendas. A primeira planilha do Excel corresponde ao primeiro território de vendas na empresa (por exemplo, FL01.) O nome da guia da planilha (assim como a célula A1) é o número do território de vendas FL01. Os dados que direcionam os gráficos estão à direita (fora do intervalo de impressão que defini) e são preenchidos de outra pasta de trabalho do Excel usando VLOOKUP com o número do território de vendas FL01 na célula A1 como a chave de pesquisa. Preciso adicionar à pasta de trabalho 76 planilhas idênticas (uma para cada território de vendas) de modo que o nome da guia de cada planilha e a célula A1 sejam iguais aos números de territórios de vendas sucessivos (por exemplo, FL01, FL02, LK01, LK02.) Como faço isso em um forma automatizada?

Isso é facilmente realizado com uma macro VBA, mas deixe-me cobrir a dica para fazer isso manualmente. Depois de configurar uma planilha com formatação e intervalos de impressão, você pode duplicar facilmente a planilha clicando com o botão direito na guia dessa planilha. No menu que aparece, escolha Mover ou Copiar. Na caixa de diálogo Mover ou Copiar, selecione "(mover para o final)", marque a caixa "Criar uma cópia" e clique em OK. Uma cópia de sua planilha com formatação será adicionada como uma nova planilha em sua pasta de trabalho. (Para acelerar esse processo, mantenha pressionada a tecla Ctrl enquanto arrasta a guia da planilha para a direita.) Normalmente, você desejará renomear a planilha. Clique com o botão direito na nova guia, escolha renomear e digite um nome significativo.

Para que a macro do Excel funcione, é necessária uma lista de territórios. Antes de escrever a macro, insira uma nova planilha neste livro chamada Dados. Na célula A1, insira o segundo território de vendas (FL02 em seu exemplo). Continue inserindo todos os territórios de vendas na coluna A. Não deixe nenhuma linha em branco.

Insira uma nova macro e copie este código:

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

A macro usa o comando Sheets (). Copy que faz a mesma coisa que clicar em Mover ou Copiar manualmente. Antes de fazer cada cópia, descubro o número de folhas usando a propriedade Sheets.Count. Sei que se houver 56 folhas e inserir uma nova folha, ela será referenciada como Folhas (57). Acho um tanto imprevisível adivinhar como o Excel nomeará a nova planilha, então uso números de índice numérico para identificar a planilha. Depois de renomear a nova planilha com "Sheets (LastSheet + 1) .Name = ThisTerr", posso então voltar ao meu método preferido de referência à planilha usando seu nome.

Observe que a lista de territórios não deve conter FL01 na lista. Tentar renomear uma cópia de FL01 com o mesmo nome causará um erro na macro.

Artigos interessantes...