Blog

Postado em em 5 de agosto de 2022

Última Linha ou Coluna Preenchida no VBA

Quer saber como pegar a última linha ou coluna preenchida no VBA do jeito certo? Então vem comigo que você vai aprender!

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 quero te mostrar duas formas de como pegar última linha preenchida do VBA e como pegar última coluna preenchida do VBA.

Esse é um recurso muito útil principalmente quando você vai criar automações dentro do VBA, pois se for adicionar novas informações você vai querer adicionar logo após a última linha/coluna preenchida.

Dessa forma não vai sobrepor informações, então é importante que saiba qual é a última linha/coluna preenchida para que possa colocar suas informações na próxima linha/coluna.

E aí, quer aprender como descobrir a última linha/coluna preenchida para facilitar suas automações dentro do Excel? Então vem comigo que eu te mostro!

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”. Colocaremos as duas “subs” abaixo dentro desse módulo.

A seguir apresentaremos os códigos e os comentários a respeito deles. Acompanhe com a gente.

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 para “abaTabelaAjustada”. Agora, para chamar ou referenciar essa planilha no código, podemos simplesmente escrever “abaTabelaAjustada”, como veremos a seguir.

Sub ultimaLinhaPreenhida()

Dim ultLinha As Long, ultCol As Long

Dim intervalo As Range

ultLinha = abaTabelaAjustada.Cells(1048576, 1).End(xlUp).Row

ultCol = abaTabelaAjustada.Cells(1, 16384).End(xlToLeft).Column

With abaTabelaAjustada

    Set intervalo = .Range(.Cells(1, 1), .Cells(ultLinha, ultCol))

End With

intervalo.Select

End Sub

Explicação do código acima (ultimaLinhaPreenchida):

  • Dimensionar:
    • A variável “ultLin” como uma variável do tipo Long (número)
    • A variável “ultCol” como uma variável do tipo Long (número)
    • A variável “intervalo” como uma variável do tipo Range (intervalo de células, ou célula)
  • Armazenar na variável “ultLin” o número da linha que vai ser gerado ao irmos para cima, a partir da célula de linha 1.048.576, na coluna 1 (A)
  • Armazenar na variável “ultCol” o número da coluna que vai ser gerado ao irmos a esquerda, a partir da célula de linha 1, na coluna 16.384 (XFD)
  • Configurar a variável “intervalo” para receber o intervalo de células compreendido entre a célula A1 (dada pela célula de coordenada linha 1 e coluna 1) e a célula dada pelas coordenadas que são representadas pela linha “ultLin” e a coluna “ultCol”, da aba “abaTabelaAjustada”
  • Selecionar o intervalo representado pela variável “intervalo”
  • Terminar o código
Sub ultimaLinhaPreenhidaCerto()

Dim ultLinha As Long, ultCol As Long

Dim intervalo As Range

ultLinha = abaTabelaAjustada.Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Row

ultCol = abaTabelaAjustada.Cells.Find("*", , xlFormulas, xlPart, xlByColumns, xlPrevious).Column

With abaTabelaAjustada

    Set intervalo = .Range(.Cells(1, ultCol), .Cells(ultLinha, ultCol))

End With

intervalo.Select

End Sub

Explicação do código acima (ultimaLinhaPreenchidaCerto):

  • Dimensionar:
    • A variável “ultLin” como uma variável do tipo Long (número)
    • A variável “ultCol” como uma variável do tipo Long (número)
    • A variável “intervalo” como uma variável do tipo Range (intervalo de células, ou célula)
  • Armazenar na variável “ultLin” o número da linha, que vai ser gerado ao procurarmos “*”, olhando para as fórmulas, em parte da planilha (apenas naquela aba), olhando linha por linha
  • Armazenar na variável “ultCol” o número da coluna, ao procurarmos “*”, olhando para as fórmulas, em parte da planilha (apenas naquela aba), olhando coluna por coluna
  • Configurar a variável “intervalo” para receber o intervalo de células compreendido entre a célula A1 (dada pela célula de coordenada linha 1 e coluna 1) e a célula dada pelas coordenadas que são representadas pela linha “ultLin” e a coluna “ultCol”, da aba “abaTabelaAjustada”
  • Selecionar o intervalo representado pela variável “intervalo”
  • Terminar o código

Conclusão – Última Linha ou Coluna Preenchida 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!