Como criar uma nova planilha usando código vba?

Depois de começar a aprender VBA, uma das coisas mais legais que você pode fazer é escrever código VBA para inserir uma nova planilha em uma pasta de trabalho.

Bem, já existe uma tecla de atalho para inserir uma nova planilha ou você também pode usar a opção normal, mas a vantagem de usar código VBA é que você pode adicionar várias planilhas com apenas um clique e também pode definir onde deseja adicionar isto.

Para isso, você precisa utilizar o método Sheets.Add, e neste artigo aprenderemos como utilizá-lo para adicionar uma ou mais planilhas em uma pasta de trabalho.

Método Planilhas.Add

 Sheets.Add ([Before], [After], [Count], [Type])
  • Antes: para adicionar uma nova planilha antes de uma planilha.
  • Depois: Para adicionar a nova planilha antes de uma planilha.
  • Contagem: número de folhas a adicionar.
  • Tipo: Tipo de planilha que você deseja adicionar ( LINK )

Escreva o código VBA para adicionar uma nova planilha a uma pasta de trabalho

Abra o editor do Visual Basic e siga estas etapas.

  • Primeiro, você precisa inserir o método Sheets.Add.
  • A seguir, você precisa definir onde adicionar a nova planilha (Antes ou Depois).
  • O próximo passo é inserir o número de planilhas.
  • Em última análise, o tipo de folha.
método add-sheets-add-vba

Diferentes maneiras de adicionar novas planilhas em uma pasta de trabalho usando código VBA

Abaixo estão diferentes maneiras de adicionar uma nova planilha a uma pasta de trabalho:

1. Adicione uma única planilha

Para adicionar uma única planilha, você pode usar o código abaixo, onde não especificou nenhum argumento.

 Sub SheetAddExample1() ActiveWorkbook.Sheets.Add End Sub

Este código diz ao Excel para adicionar uma planilha na pasta de trabalho ativa, mas como você não tem argumentos, ele usará os padrões e adicionará uma planilha (xlWorksheet) antes da planilha ativa.

Aqui está outra maneira de escrever isso, veja o código abaixo.

 Sub SheetAddExample2() Sheets.Add End Sub

Como você já está na pasta de trabalho ativa, também pode usar o código abaixo. Ele faz a mesma coisa.

2. Adicione várias planilhas

Para adicionar várias planilhas de uma vez, basta definir o argumento COUNT com o número de planilhas que deseja adicionar.

 Sub AddSheets3() Sheets.Add Count:=5 End Sub

Agora, o número de planilhas que você define é 5; portanto, quando você executa esse código, ele adiciona instantaneamente as cinco novas planilhas à pasta de trabalho.

3. Adicione uma planilha com um nome

Se quiser renomear a planilha após adicioná-la, você pode usar o seguinte código:

 Sub AddNewSheetswithNameExample1() Sheets.Add.Name = "myNewSHeet" End Sub

No código acima, usamos o objeto name ( LINK ) que ajuda a especificar o nome de uma planilha.

4. Adicione uma planilha com o nome de uma célula

Você também pode usar o valor para usar como nome da planilha de uma célula.

 Sub AddNewSheetswithNameExample2() Sheets.Add.Name = Range("A1") End Sub

No código acima, a célula A1 é usada para obter o nome da nova planilha.

5. Adicione uma planilha antes/depois de uma planilha específica

Como esses argumentos já estão lá em Sheets.Add onde você pode especificar a planilha para adicionar uma nova planilha antes ou depois.

 Sub AddSheetsExample5() Sheets.Add Before:=Worksheets("mySheet") Sheets.Add After:=Worksheets("mySheet") End Sub

Agora, no código acima, você tem duas linhas de código usadas antes e depois de um argumento no método Sheet.Add. Portanto, quando você executa esse código, ele adiciona duas planilhas, uma antes e outra depois de “mySheet”.

6. Adicione uma nova planilha no início

Usando o argumento antes de usar, você também pode adicionar uma planilha ao início das planilhas que possui na pasta de trabalho.

Então, basicamente, o que vamos fazer é especificar o número da planilha em vez do nome da planilha.

 Sub AddSheetsExample6() Sheets.Add Before:=Sheets(1) End Sub

No código acima, você usou o número da planilha (1) que diz ao VBA para adicionar a planilha antes da planilha que está na primeira posição em todas as planilhas. Dessa forma sempre adicionará a nova planilha no início.

7. Adicione uma nova planilha no final (após a última planilha)

Para adicionar uma nova planilha no final, você precisa escrever o código de uma maneira diferente. Então para isso você precisa saber quantas planilhas tem a pasta de trabalho para poder adicionar uma nova planilha no final.

 Sub AddSheetsExample8() Sheets.Add After:=Sheets(Sheets.Count) End Sub

No código acima, Sheet.Count retorna o número de planilhas que você tem na pasta de trabalho e, como você define o argumento posterior, ele adiciona a nova planilha após a última planilha da pasta de trabalho.

8. Adicione várias planilhas e use nomes de intervalos

O código a seguir conta linhas no intervalo A1:A7. Depois disso, ele faz um loop para adicionar planilhas com base na contagem do intervalo e usa os valores do intervalo para nomear a planilha ao adicioná-la.

 Sub AddSheetsExample9() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A7").Cells(i, 1).Value Worksheets.Add().Name = sheet_name Next i End Sub

Mas com o código acima, é possível que o nome da planilha que você deseja adicionar já exista ou você tenha uma célula vazia no intervalo de nomes.

Neste caso, é necessário escrever um código que possa verificar se a planilha com o mesmo nome já existe ou não e se a célula de onde deseja retirar o nome da planilha está vazia ou não.

Se ambas as condições forem atendidas, uma nova planilha deverá ser adicionada. Deixe-me colocar isso em duas etapas:

Em primeiro lugar , você precisa escrever uma função definida pelo usuário do Excel para verificar se já existe ou não uma planilha com o mesmo nome.

 Function SheetCheck(sheet_name As String) As Boolean Dim ws As Worksheet SheetCheck = False For Each ws In ThisWorkbook.Worksheets If ws.Name = sheet_name Then SheetCheck = True End If Next End Function

Em segundo lugar, você precisa escrever algum código usando esta função e este código também precisa verificar se a célula do nome está vazia ou não.

 Sub AddMultipleSheet2() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A10").Cells(i, 1).Value If SheetCheck(sheet_name) = False And sheet_name <> "" Then Worksheets.Add().Name = sheet_name End If Next i End Sub

Agora no código acima você usou a instrução VBA IF e nesta instrução você tem a função de verificação de planilha que verifica o nome da planilha e então você tem uma condição para verificar se a célula do nome tem um valor vazio.

Arquivo de exemplo

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *