VBA – Executar uma Macro Quando o Excel For Iniciado
In this Article
Você precisa executar uma macro quando o Excel é iniciado? Você tem duas opções:
1. Criar uma subseção Workbook_Open() dentro de ‘ThisWorkbook’.
2. Coloque uma subfunção Auto_Open() em qualquer módulo.
Evento Workbook_Open
Crie um subtítulo “Workbook_Open” dentro de “EstaPastaDeTrabalho”
Sub Workbook_open ()
MsgBox "Esse código foi executado no início do Excel!"
End Sub
Auto_Open
Usando o segundo método: Basta criar uma subrotina chamada Auto_Open e inserir o código nela ou chamar outra subrotina a partir dela. Automaticamente, seu código será executado quando o Excel for iniciado.
Private Sub Auto_Open()
MsgBox "Esse código foi executado no início do Excel!"
End Sub
Criar e Nomear Nova Planilha Sempre que o Excel for Aberto
O código a seguir funciona ao abrir uma pasta de trabalho. Ele adiciona automaticamente uma nova planilha e a rotula com a data. Ele também verifica se a planilha ainda não existe – para permitir a possibilidade de ela ser aberta mais de uma vez por dia.
Esse código usa o Workbook Open Event e deve ser colocado no módulo da pasta de trabalho sob o evento “Open Workbook”. A função Planilha_Existe deve ser colocada em um módulo e verifica se a planilha existe ou não:
Private Sub Workbook_Open()
Dim Nome_Nova_Planilha As String
Nome_Nova_Planilha = Format(Now(), "dd-mm-yy")
If Planilha_Existe(Nome_Nova_Planilha) = False Then
With Workbook
Worksheets.Add().Name = Nome_Nova_Planilha
End With
End If
Save
End Sub
Function Planilha_Existe(Nome_Planilha As String) As Boolean
Dim Planilha As Worksheet
Planilha_Existe = False
For Each Planilha In ThisWorkbook.Worksheets
If Planilha.Name = Nome_Planilha Then
Planilha_Existe = True
End If
Next
End Function
Para fazer download do arquivo .XLSM deste tutorial, clique aqui
Definir a Planilha Padrão Quando a Pasta de Trabalho é Aberta
Você deseja garantir que uma planilha seja sempre exibida primeiro quando uma pasta de trabalho é aberta? Por exemplo, quando você abre uma pasta de trabalho, a planilha 3 é sempre a planilha ativa. Veja como.
Você pode se referir a uma planilha do VBA pelo nome do programa (por exemplo, Planilha3) ou pelo nome da guia (por exemplo, DadosJan). É melhor usar o nome do programa, pois se o nome da guia mudar, o código VBA que se refere a um nome de guia não funcionará mais. Entretanto, se você usar o nome do programa, o usuário poderá alterar o nome da guia várias vezes e a macro continuará funcionando.
Para garantir que uma determinada planilha seja sempre ativada quando uma pasta de trabalho for aberta, basta colocar o código sheet.activate na subfunção workbook_open. Este é um exemplo que ativa a planilha3 usando o nome do programa sempre que uma pasta de trabalho é aberta.
Private Sub Workbook_Open()
Planilha3.Activate
End Sub
E este faz isso usando o nome da guia:
Private Sub Workbook_Open()
Sheets("NomeDaMinhaPlanilha").Activate
End Sub
Observação: Você deve salvar e reiniciar o Excel para que isso funcione.
Observação: Isso só funciona se as macros estiverem ativadas.
Observação: Coloque esse código na janela de código do objeto EstaPastaDeTrabalho no VBE.
Carregar Formulário Sempre que a Pasta de Trabalho for Aberta
Se você quiser carregar um formulário ou executar algum código VBA ao abrir uma pasta de trabalho do Excel, coloque seu código na janela de código EstaPastaDeTrabalho e na subjanela Workbook_Open.
Em sua planilha:
1. Pressione ALT e F11 para abrir o editor VB
2. Clique duas vezes na palavra EstaPastaDeTrabalho para abrir a janela de código
3. Digite o seguinte código na janela de código EstaPastaDeTrabalho
Private Sub Workbook_Open()
UserForm1.Show
End Sub
Observação: Substitua Userform1 pelo nome do seu formulário
4. Feche o Excel e abra-o novamente.
Codificação VBA facilitada
Pare de procurar códigos VBA on-line. Saiba mais sobre o AutoMacro – um construtor de código VBA que permite que os iniciantes codifiquem procedimentos do zero com conhecimento mínimo de codificação e com muitos recursos que economizam tempo para todos os usuários!