1
resposta

Selection.End(xlDown)

Bom dia, estou tentando fazer um formulário que preenche uma planilha, porém quando uso o Selection.End(xlDown).select ele vai pra última linha da planilha toda, ele não vai pra última linha preenchida.

Meu trecho do código está assim:

Private Sub btSalvar_Click()

Set pl = Sheets("Planilha2")

pl.Range("A11").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection = Me.txtNomeCliente.Value

Call limpaForm

End Sub

porém, na Planilha2, apenas o A11 está preenchido, que é a linha de título, não tem mais nada abaixo preenchido e mesmo assim o Selection.End(xlDown) vai pra linha 1048576.

Já tentei dar um clear e um clearcontents, mas nada funciona.

O que está acontecendo?

1 resposta

Olá Emmanuel, tudo bem? Espero que sim!

Caso não tenha nenhuma célula preenchida abaixo da célula que já está selecionada e você usar o Selection.End(xlDown).Select, a última célula da planilha será selecionada. O funcionamento de Selection.End(xlDown).Select é da seguinte forma:

Caso você selecione uma célula e tenham várias células preenchidas abaixo dela, o Selection.End(xlDown).Select irá selecionar a última célula que está preenchida nesse intervalo. Caso você selecione uma célula e tenham várias células vazias abaixo dela, o Selection.End(xlDown).Select vai selecionar a próxima célula preenchida na planilha abaixo. Portanto, se não houver nenhuma célula preenchida ele irá selecionar a última célula da planilha inteira.

O interessante é fazer a seleção inicial de uma célula no topo da planilha, como a célula A1, A2 e depois usar o Selection.End(xlDown).Select para ir até o final da tabela.

Bons estudos!