Como manipular planilhas e pastas de trabalho com VBA no Excel

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.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *