Ultima Linha VBA

Olá Amigos,

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




.

Sobre o Autor

Comentários

  1. Pingback: Macro excluir linhas com determinado valor - Douglas GodoyDouglas Godoy

  2. Edvaldo José rocha

    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!

  3. ADEMIR FRANCESCHINI

    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.

  4. Thiago Costa

    Olá Bruno!

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

    Abraço!

  5. Bruno bougleux

    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!

    1. Douglas Godoy Resposta do Autor

      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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *