Blog

Postado em em 30 de julho de 2022

Ler Tabelas do Excel no VBA – Dois Métodos Diferentes

Hoje eu quero te mostrar como ler tabelas do Excel no VBA de duas maneiras diferentes para facilitar os seus trabalhos!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala, Impressionadores! Na aula de hoje eu vou te mostrar dois métodos para ler tabelas do Excel no VBA!

Isso é muito útil para fazer suas automações, pois em muitos casos você vai precisar analisar as informações que tem na sua tabela para fazer algum tipo de tratamento.

Vou te ensinar dois métodos, um deles é pegar as informações da tabela e colocá-las dentro do VBA e o outro é utilizando matrizes em VBA.

Para os dois métodos nós vamos utilizar a estrutura de repetição for no VBA, que você já deve conhecer e claro, vamos abordar a declaração de variáveis no VBA para auxiliar!

E aí, vamos aprender como pegar informações de tabela no VBA para poder facilitar a sua automação dentro do Excel?

Inserindo um Módulo no VBA

Para criar um código dentro do VBA geralmente criamos um módulo. Para criá-lo precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.

Vamos na guia Inserir > Módulo, e uma caixa branca se abrirá.

Por padrão ele terá o nome de “Módulo 1”.

Precisaremos também fazer uma adaptação, que é bem legal no VBA, que é renomear uma planilha. Podemos, por padrão, chamar a planilha pelo nome no VBA, como por exemplo Sheets(“Planilha1”)

Mas há uma outra forma de chamá-la, para referenciá-la dentro do código. Podemos simplesmente alterar sua propriedade Name. Veja:

No exemplo, alteramos o nome da planilha de “Atendimentos” para “abaAtend”. Agora, para chamar ou referenciar essa planilha no código, podemos simplesmente escrever “abaAtend”, como veremos a seguir.

Com o módulo criado, colocaremos a seguinte sub dentro dele:

Sub lendoTabelasFor()

Dim tabela As ListObject
Dim i As Long
Dim codigo As String

Set tabela = abaAtend.ListObjects("TabelaAtendimentos")

For i = 1 To tabela.ListRows.Count
    codigo = tabela.ListRows(i).Range.Cells(1, 3)
Next

End Sub

Explicação do 1º código (lendoTabelasFor):

  • Dimensionar:
    • A variável tabela como um objeto ListObject (que é como nos referimos aos objetos de tabela criados no Excel)
    • A variável i como uma variável do tipo Long (número)
    • A variável codigo como uma variável do tipo String (texto)
  • Configurar a variável tabela para representar diretamente no código a tabela da abaAtend, de nome “TabelaAtendimentos”, que é de fato a tabela que usamos de exemplo na aula de hoje
  • Usar de uma estrutura de repetição do tipo For, que vai:
    • Analisar da linha representada pela variável i, que vai de 1 até a contagem de linhas da tabela
    • Armazenar na variável codigo o que tiver, linha a linha, na coluna 3. Aqui deve-se entender que você vai analisar/ter objetos “parciais” de linhas que formarão a tabela (objeto “conjunto”). Olhando para uma única linha, (como objeto parcial) o nosso código sempre estará naquela linha (única) e na coluna 3. Como a variável “i” vai mudar de valor, vamos olhar cada hora para uma linha especificada tabela.
  • Se encerra o código
Sub lendoTabelasMatriz()

Dim matriz As Variant
Dim i As Long
Dim codigo As String

matriz = abaAtend.ListObjects("TabelaAtendimentos").DataBodyRange.Value

For i = LBound(matriz) To UBound(matriz)
    codigo = matriz(i, 3)
Next

End Sub

Explicação do 1º código (lendoTabelasMatriz):

  • Dimensionar:
    • A variável matriz como uma variável do tipo Variant (assume vários tipos, entendida como “qualquer”)
    • A variável i como uma variável do tipo Long (número)
    • A variável codigo como uma variável do tipo String (texto)
  • Configurar a variável matriz para representar diretamente no código a os dados presentes nas células do corpo da tabela da abaAtend, de nome “TabelaAtendimentos”, que é de fato a tabela que usamos de exemplo na aula de hoje
  • Usar de uma estrutura de repetição do tipo For, que vai:
  • Se encerra o código

Conclusão – Ler Tabelas do Excel no VBA

Nessa aula você lidou com:

Até a próxima, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Quer aprender a construir um Dashboard em Excel do zero? Se inscreva gratuitamente na Jornada do Excel!