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!
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):
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
Nessa aula eu te mostrei os temas abaixo e te mostrei como você pode encontrar a última linha ou coluna preenchida no VBA.
Esse é um recurso muito útil dentro do VBA, pois nem sempre as informações que temos possuem um tamanho fixo, então descobrir qual é a última linha ou coluna de forma automática facilita bastante!
Até a próxima, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA!
Para acessar outras publicações de VBA, clique aqui!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.