Objeto ActiveSheet no Excel VBA é o que você procura
A finalidade do Objeto ActiveSheet no VBA é consultar planilhas atualmente ativa na pasta de trabalho ativa. A partir dele podemos selecionar dados, células, intervalos, linhas ou colunas de Outra Planilha dinamicamente com VBA no Excel.
Para entender, acompanhe os exemplos passo a passo e veja como este Objeto funciona na prática.
O que é Objeto ActiveSheet no Excel VBA
Uma planilha atualmente ativa na pasta de trabalho ativa, é denominado ActiveSheet, que em inglês significa “Planilha Ativa”.
De fato, qualquer planilha pode ser ativada como planilha ativa. Isto é, podemos usar o método Activate para ativar uma planilha usando o Excel VBA.
Planilha("Nome_da_planilha").Activate
Como definir uma planilha como ativa no VBA
Como eu disse, podemos usar o método Activate para definir a planilha como ativa no VBA. Por exemplo, a Planilha 3 pode ser definida como planilha ativa chamando o Método de Ativação abaixo:
Planilha(3).Activate
Como ler dados de uma Planilha Ativa
O VBA permite ler dados do Objeto ActiveSheet. Para isso, podemos usar todos os métodos e propriedades de uma planilha Object. Por exemplo, temos a seguir um código VBA que obtém dados do ActiveSheet e seu resultado é mostrado em uma caixa de mensagem, como na figura abaixo:
Temos aqui o código usado acima:
Sub Obter_dados_da_planilha_ativa()
MsgBox ActiveSheet.Range("D5")
End Sub
No exemplo, o código ActiveSheet.Range (“D5”) lê os dados da célula D5 da planilha ativa. Portanto, não é obrigatório especificar a planilha antes do objeto Range, porque 0 intervalo (“D5”) refere-se aos dados da planilha atual.
Usos do ActiveSheet no desenvolvimento do VBA
É verdade que, lidamos com várias planilhas ao automatizar uma tarefa do Excel. Podemos assim, simplesmente definir o ActiveSheet como uma variável e então, mantê-la para referências futuras.
Por exemplo: digamos que temos 3 planilhas na pasta de trabalho e, atualmente a planilha 2 está ativada. Sendo assim, deseja-se utiliazr a planilha 3 de modo que é necessário navegar pela planilha 2 para consulta de dados. Neste cenário, devemos trabalhar com o Objeto ActiveSheet.
Segue abaixo o código utilizado:
Sub Obter_dados_da_planilha_ativa()
'Vou falar para o VBA que quero trabalhar com a Planilha2 Planilha2.Activate 'A variável K vai ler os dados da célula A1 da planilha ativa (Planilha2 neste caso) K = Range("A1")
'Agora desejo abrir a Planilha3 'Vou definir o Objeto ActiveSheet em uma variável temporária antes de ativar a Planilha3 Set sht = ActiveSheet 'Agora vou pedir para ativar a Planilha3 Planilha3.Activate 'Inserir dados da célula D3 da Planilha2 na célula A1 da Planilha3 Range("A1") = sht.Range("D3")
End Sub
Como obter o nome da Planilha Ativa
Podemos trabalhar com a propriedade .Name do objeto ActiveSheet para retornar o nome da planilha atualmente ativa usando VBA. Observe abaixo:
Abaixo temos o código:
Sub Nome_Da_Planilha_Ativa()
MsgBox ActiveSheet.Name
End Sub
Como copiar dados de outra planilha para a Planilha Ativa
O Excel VBA permite copiar dados de uma planilha qualquer, e cola-los em uma planilha atualmente ativa. Observe como isso é feito:
Sub Copiar_Dados_Para_Planilha_Ativa()
Planilha2.Activate Planilha3.Range("A1:G25").Copy Range("G1").Select ActiveSheet.Paste
End Sub
Como contar formas na Planilha Ativa
A macro a seguir retorna o número de formas na planilha ativa:
Sub Contar_Formas_Na_Planilha_Ativa()
MsgBox ActiveSheet.Shapes.Count
End Sub
Como contar gráficos na Planilha Ativa
A macro a seguir retorna o número de gráficos incluido na planilha ativa:
Sub Contar_Graficos_Na_Planilha_Ativa()
MsgBox ActiveSheet.ChartObjects.Count
End Sub
Como proteger a Planilha Ativa usando VBA
Podemos usar o método de proteção do ActiveSheet para proteger com senha uma planilha, como mostrado abaixo:
Sub Proteger_Planilha()
ActiveSheet.Protect "Senha", True, True
End Sub
Para desproteger a planilha, use o método a seguir:
ActiveSheet.UnProtect "Senha"
Conclusão
Neste artigo vimos como ativar uma planilha do Excel usando o VBA atravéz do objeto ActiveSheet.
Recomendo fortemente que você tome coragem de repetir todo o passo-a-passo. Eu penso que praticar é a melhor maneira de aprender e, embora pareça simples, é preciso se acostumar a navegar entre as telas para que no futuro você possa se tornar um usuário avançado.
Eu sei que não é comum ler um artigo deste, como tutorial, e repetir para aprender, mas recomendo fortemente que você tome coragem de repetir todo o passo-a-passo. Desenvolva seu próprio método, veja o que te ajuda, implemente-o para se tornar fluente na ferramenta Excel VBA.
O site deste pessoal aqui foi referência para este artigo. O site é muitoooo bacana com várias dicas legais de programação, mas infelizmente o conteúdo está em inglês, o que não deixa de ser uma boa referência para quem conseguir acompanhar. Eu recomendo.
Por fim, termino aqui este artigo, mas deixo linkado abaixo, outros conteudos relacionados a VBA para que você fique ligado! Até a próxima.
Como Automatizar Planilha com VBA no Excel com EXEMPLOS
Como criar macro no Excel – A FORMA MAIS FÁCIL
Como declarar variáveis no VBA
Como Ler e Escrever em Células – Automatize sua planilha já
Parabéns pelo seu blog, está sendo muito útil.
Estou tentando gerar um arquivo para visualização, (pdf e impressão posteriomente).
No entanto preciso pegar um conjunto de celula de uma planilha (dados) e abaixo de uma outra planilha (pedidos), é possível ?
tentei usar o active planilha e selecionar na sequencia mas só veio uma das seleções…
obrigado