Uma das tarefas mais comuns no VBA é manipular as planilhas e pastas de trabalho do Excel: criar novas abas, renomear, copiar, mover, ocultar, excluir e acessar dados de outros arquivos. Saber fazer isso com VBA abre um mundo de possibilidades de automação. Neste artigo iremos mostrar como realizar as principais operações com planilhas e pastas de trabalho usando VBA.
Referenciando planilhas no VBA
Antes de manipular uma planilha, você precisa referenciá-la no código. Existem três formas de fazer isso:
Pelo nome da aba
Worksheets("Vendas").Range("A1").Value = "Teste"
Pelo índice (posição da aba)
Worksheets(1).Range("A1").Value = "Teste" ' primeira aba
Pela planilha ativa
ActiveSheet.Range("A1").Value = "Teste"
A forma mais segura é referenciar pelo nome, pois o nome é mais estável. O índice pode mudar se as abas forem reordenadas.
Criando uma nova planilha
Para adicionar uma nova planilha à pasta de trabalho:
Sub CriarPlanilha()
Dim nova As Worksheet
Set nova = Worksheets.Add
nova.Name = "Relatório Mensal"
End Sub
Você pode controlar onde a nova planilha será inserida usando os parâmetros Before e After:
' inserir antes da primeira aba Worksheets.Add Before:=Worksheets(1) ' inserir depois da última aba Worksheets.Add After:=Worksheets(Worksheets.Count)
Renomeando uma planilha
Sub RenomearPlanilha()
Worksheets("Plan1").Name = "Dados Consolidados"
End Sub
Copiando e movendo planilhas
Para copiar uma planilha para outra posição na mesma pasta de trabalho:
Worksheets("Vendas").Copy After:=Worksheets(Worksheets.Count)
Para mover uma planilha:
Worksheets("Vendas").Move After:=Worksheets("Clientes")
Ocultando e exibindo planilhas
Para ocultar uma planilha:
Worksheets("Dados Base").Visible = False
Para exibir novamente:
Worksheets("Dados Base").Visible = True
Existe também uma opção de ocultação muito forte que impede o usuário de exibir a planilha manualmente pelo menu do Excel:
Worksheets("Dados Base").Visible = xlSheetVeryHidden
Para exibir uma planilha com essa configuração, só é possível via VBA, o que torna essa opção interessante para ocultar abas auxiliares que não devem ser vistas pelos usuários.
Excluindo uma planilha
Sub ExcluirPlanilha()
Application.DisplayAlerts = False ' suprime a confirmação
Worksheets("Plan2").Delete
Application.DisplayAlerts = True ' reativa as confirmações
End Sub
O Application.DisplayAlerts = False suprime a janela de confirmação que o Excel normalmente exibe antes de excluir uma planilha. Lembre-se de reativar com True depois.
Percorrendo todas as planilhas
Sub ListarPlanilhas()
Dim ws As Worksheet
Dim lista As String
For Each ws In ThisWorkbook.Worksheets
lista = lista & ws.Name & vbNewLine
Next ws
MsgBox "Planilhas encontradas:" & vbNewLine & lista
End Sub
Abrindo outra pasta de trabalho
Sub AbrirArquivo()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Dados\Relatorio.xlsx")
' acessa dados do arquivo aberto
MsgBox wb.Worksheets(1).Range("A1").Value
' fecha o arquivo
wb.Close SaveChanges:=False
End Sub
Salvando a pasta de trabalho
' salva no mesmo local e nome ThisWorkbook.Save ' salva com novo nome e local ThisWorkbook.SaveAs "C:\Dados\Relatorio_Atualizado.xlsx"
Copiando dados entre pastas de trabalho
Uma das automações mais comuns é copiar dados de um arquivo para outro. O código abaixo abre um arquivo de origem, copia os dados da primeira planilha e cola na planilha ativa do arquivo atual:
Sub CopiarDadosDeOutroArquivo()
Dim origem As Workbook
Dim destino As Worksheet
Set origem = Workbooks.Open("C:\Dados\Base.xlsx")
Set destino = ThisWorkbook.Worksheets("Consolidado")
origem.Worksheets(1).UsedRange.Copy _
Destination:=destino.Range("A1")
origem.Close SaveChanges:=False
MsgBox "Dados copiados com sucesso!"
End Sub
Se você curtiu esse artigo onde mostramos como manipular planilhas e pastas de trabalho com VBA, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.