COMO ACHAR A ÚLTIMA LINHA DE UMA PLANILHA
Indo de cima para baixo e de baixo para cimaComo Achar a Última Linha de uma planilha – usando VBA
Normalmente precisamos adicionar registros na primeira linha vazia de uma tabela.
Isso pode ser feito usando tecla de atalho como o CTRL + Seta para baixo, ou CTRL + END.
Mas e se precisarmos fazer isto através do VBA?
Mostrarei a seguir algumas formas de se achar a última linha usando VBA.
Achar a última linha de uma planilha indo de cima para baixo
Neste caso, vamos iniciar no topo de nossa tabela e descer até a última linha.
Isto só funciona se você tiver pelo menos DUAS LINHAS preenchidas, porque se tiver somente uma ele irá para a última linha da planilha.
Além disso, você NÃO PODE ter linhas em branco nesta tabela; caso contrário ele irá parar na 1a linha vazia que encontrar. Se você tiver este problema, veja a próxima alternativa.
Se a sua tabela começa na célula A1, você pode usar o comando:
Range(“a1”).End(XLDOWN).Row
Neste comando, começamos na A1 e fazemos o equivalente ao CTRL+Seta para baixo. E no exemplo trazemos o número da última linha preenchida.
Se você precisar da 1a linha em branco basta somar 1 se simplesmente precisar saber qual é esta linha.
Range(“a1”).End(XLDOWN).Row +1
Se você quiser selecionar a 1a linha em branco, pode fazer assim:
Range(“a1”).End(XLDOWN).Offset(1,0).Select
O comando Offset tem dois argumentos: linhas a subir/descer e colunas à direita/esquerda. No exemplo, desceremos 1 e não andaremos para os lados (1,0).
Usamos o Offset para que a macro desça para a 1a linha vazia; caso contrário ela irá selecionar a última linha preenchida.
Achar a última linha da planilha indo de baixo para cima
Uso esta opção em praticamente todos os códigos que construo, porque evita que a macro pare em uma linha em branco que eventualmente exista no meio da tabela.
Se começarmos do final e subirmos, iremos sempre identificar a ultima linha preenchida, mesmo que tenha alguma linha em branco no meio de sua tabela.
O código é praticamente o mesmo do exemplo inicial:
Range(“a1000000”).End(XLUP).Row
Você pode usar a linha 1 milhão ou qualquer outro número de linha que você saiba ser bem depois do último registro. O End(xlUp) equivale ao CTRL+Seta para cima
Se você quiser selecionar a 1a linha vazia, use este código:
Range(“a1000000”).End(XLUP).Offset(1,0).Select
Achar a última linha da tabela
Eventualmente você precisa achar a última linha da sua tabela, mas nela há colunas com mais linhas do que outras.
Se este for o caso, você deveria “adivinhar” qual é a coluna com maior número de linhas para poder usar um dos dois exemplos anteriores.
Ou usar este:
Range(“a1”).SpecialCells(xlLastCell).Select
Neste caso, o comando SpecialCells(XLLASTCELL) irá localizar a última célula de sua PLANILHA, independente de qual coluna você tenha começado (neste exemplo, foi da coluna A).
A problema neste caso é se você tiver formatação residual em células, já que neste caso ele irá identificar a última célula com informação. Neste caso, lembre-se de excluir linhas ao invés de simplesmente apagar o conteúdo delas.
Você também pode se interessar pelos outros tutoriais para localização de últimas linhas/colunas em planilha:
OUTROS ARTIGOS DE INTERESSE
Como Criar Bullet Chart no Excel
O que é um Bullet Chart O Bullet Chart foi criado por Stephen Few por volta de 2005 com o objetivo de ser a solução PROFISISONAL para as aberrações chamadas de Gráficos de Velocímetro. O Bullet Chart e capaz de apresentar de forma mais clara valores e suas relações...
Aprenda a fazer um Gráfico Circular no Excel
GRÁFICO CIRCULAR NO EXCEL Neste artigo você aprenderá a fazer um gráfico circular no Excel, que pode ser inserido em apresentações e em infográficos. Ao final do artigo você poderá baixar a planilha com elke Não recomendamos sua inserção em Dashboard pois ele é menos...
Limpeza de Dados no Excel – PARTE 1
LIMPEZA DE DADOS NO EXCEL - IMPORTANDO, EXCLUINDO E PROMOVENDO LINHAS Nesta primeira parte da sequência vamos apresentar a ferramenta de PowerQuery (ou Obter e Transformar dados no Excel 2016). No Excel 2010 e 2013 você precisará instalá-lo. Siga as instruções que...
- 6 maneiras de usar o preenchimento relâmpago - março 12, 2021
- quatro motivos para voce parar de usar o procv - fevereiro 16, 2021
- Como Criar um Gráfico de Waterfall no Excel - fevereiro 2, 2021
Nossas Redes Sociais
Estou usando essas formulas para obter a última linha com dados, porém ela sempre trás a última linha da planilha. O que pode estar errado?
ultimalinha = Planilha1.Range(“A1”).End(xlDown).Row
Boa Fábio, só que eu tenho uma dúvida específica cara, eu preciso que toda vez que eu abrir um userform, dentro de uma textbox nele apareça a contagem de quantas vezes ele foi aberto para identificar os itens por abertura de userform (além do ID), então pensei em: Selecionar a última célula da coluna de uma tabela, pegar o valor dela e somar +1 (o restante já fiz). Só que to a 1 semana testando tudo quanto é código, inclusive usando worksheet funcion e inserindo funções no vba mas não obtive sucesso. Teria uma dica de como fazer isso?
Um código mais fácil de encontrar a ultima linha na Planilha é esse!
Linha = WorksheetFunction.CountA(Columns(1))
Estava tentando fazer de cima p baixo e não estava dando certo, até q encontrei seu site e BINGO, resolvi meu problema. Parabéns, vc me salvou!
Ajudou muito.
Parabéns.