Identificar a última linha da planilha – VBA

Olá Amigos,

Estou retornando as postagens hoje…

As coisas estavam um muito corridas nas últimas semanas, tive a alegria do nascimento da minha filha e com isso a rotina ficou bastante agitada, além disso estava com alguns projetos importantes na empresa e para completar é fim de semestre na faculdade, ai vocês já sabem, as publicações ficaram para um segundo plano…

Como o tempo ainda está escasso farei algumas publicações mais curtas com dicas do próprio Microsoft Excel e também de VBA e publicarei mais frequentemente.

Voltando ao assunto da postagem…

Vou mostrar abaixo como você pode fazer para ir para a última linha vazia de uma planilha, este comando utilizamos muito quando queremos inserir um cadastro de cliente, produto, fornecedor ou qualquer coisa que necessite ser inserida em sua planilha e a partir daí formar uma base de dados ou cadastros.

Abra seu arquivo Excel, posteriormente abra o console de programação do Visual Basic for Applications (Alt + F11), insira um módulo e cole o código abaixo:


Sub ultima_linha_vazia()

Dim Linha As String

'Faz a contagem de linhas e vai para uma linha abaixo
Linha = Sheets("Plan1").Cells(Rows.Count,"A").End(xlUp).Offset(1,0).Row

MsgBox (Linha)

End Sub

Entendendo o que fizemos…
Linha = Sheets(“Plan1″).Cells(Rows.Count,”A”).End(xlUp).Offset(1,0).Row

Linha é a variável que armazenará o valor com a última linha.
Sheets(“Plan1”) Indica qual é a Planilha “Aba” que iremos contar os dados.
.Cells(Rows.Count,”A”) Faz a contagem de linhas (Rows) da coluna “A”.
.End(xlUp) Posiciona o cursor na última linha preenchida da planilha.
.Offset(1,0).Row O comando Offset faz o deslocamento uma linha abaixo.



** Offset(Primeiro_argumento,Segundo_argumento)
Acrescentado Offset(1,0) fazemos referência exatamente uma linha abaixo da última linha preenchida.

O Primeiro Argumento do método Offset identifica o número de linhas que o cursor deverá deslocar para baixo (inteiro positivo) ou para cima (inteiro negativo).

O Segundo Argumento identifica o número de colunas deslocadas para a direita (inteiro positivo) ou para a esquerda (inteiro negativo).

No exemplo deslocamos 1 linha para baixo e zero colunas.

Este é apenas um exemplo de como podemos identificar a última linha da planilha, serve como proposta para você que ainda não conhecia nenhuma forma  e estava a procura de como fazer isso.

Caso você conheça alguma outra forma de identificar a última linha da planilha compartilhe, sua opinião é muito importante.

Agradeço pela leitura e fico no aguardo de seus comentários e sugestões.

Um abraço. DG

Comentários

  • Edvaldo José rocha
    Responder

    Olá bom dia Meu nome é Edvaldo, moro em Guarulhos-SP.
    Gosto muito de programação em Excel VBA, mas não sei programar,Estou tentando desenvolver um cadastro de clientes no Excel VBA mas quando chega na hora de fazer a contagem de linhas vazia, pular para linha seguinte não estava conseguindo e ao utilizar o tal de Offset e outros parâmetros que encontrei aqui no site consegui.

    Muito Obrigado!

  • ADEMIR FRANCESCHINI
    Responder

    CARO DOUGLAS.
    Estou desenvolvendo um trabalho no excel VBA. Procurando na internet algo que pudesse me ajudar, encontrei este artigo de como identificar a última linha da planilha pelo VBA. Tenho uma planilha matriz, onde lanço os dados diariamente todo o mês. Logo que acaba o mês transfiro os dados para as planilhas de destino. até aí, tudo funciona normalmente. Acontece que ao limpar a planilha matriz e lançar novos dados, quando eu for transferir os mesmos, estes se sobrepõem aos dados lançados nas planilhas de destino. Não consigo encontrar o erro. Minha formula deveria pegar a última linha de cada planilha destino, independente de quantos dados lá estiverem e continuar os lançamentos.

    • Douglas Godoy

      Olá Ademir,

      A solução seria pegar a última linha como propôs.

      Me sinalize.

  • Thiago Costa
    Responder

    Olá Bruno!

    Parabéns pelo trabalho.
    Segue minha participação:
    Pra forma é usar o atributo SpecialCells como abaixo.
    Cells.SpecialCells(xlCellTypeLastCell).Row

    Abraço!

  • Bruno bougleux
    Responder

    Parabens Douglas! Trabalho muito interessante o seu!
    Sou coordenador de uma equipe especializada em VBA e suas soluções são sempre de muita ajuda!

    • Douglas Godoy

      Olá Bruno,

      Muito obrigado pelo seu comentário e visita ao site.

      É muito bom receber comentários de profissionais da área de trabalham com VBA, isso mostra que o trabalho está no caminho certo.

      Sempre que precisar retorne que estarei por aqui.

      Um abraço