Notifications
Clear all

Apagar última linha preenchida

16 Posts
2 Usuários
0 Reactions
3,264 Visualizações
 Rech
(@rech)
Posts: 0
New Member
Topic starter
 

Pessoal,
Boa tarde!

Gostaria de uma macro que apasse a última linha preenchida de uma tabela. A tabela vai das colunas "A" à "D". Porém, o botão da macro irá ficar na Plan2 e a tabela está na Plan1.

O código que estou usando é o seguinte, mas não estou conseguindo configurá-lo para apagar da Plan1, onde está a tabela. A planilha está com proteção, e o código de bloqueio é 1234.

    Sub Inicializar()

    'Desprotege a planilha
    ActiveSheet.Unprotect Password:="1234"

    End Sub

    Sub Finalizar()

    ' Protege a planilha
    ActiveSheet.Protect Password:="1234"

    End Sub

    Sub Desfazer()

    linha = Range("A" & Rows.Count).End(xlUp).Row
    Range("A" & linha, "D" & linha).Select

    With Sheets("Plan1")

    Inicializar

    If MsgBox("Tem certeza que deseja apagar o último lançamento? ", vbQuestion + vbYesNo) Then Range("A" & linha, "D" & linha).Delete 'Else exit sub

    Finalizar

    End With
    End Sub[/list:u:105b9mxz]

    Alguém pode me ajudar?

    Obrigado.

     
Postado : 23/12/2014 10:57 am
 Rech
(@rech)
Posts: 0
New Member
Topic starter
 

Bom dia!!

Como eu não tive erro, por favor post seu arquivo modelo!!

Eu estou saindo e volto só ao anoitecer, caso alguém não te ajudar, eu o farei!!

Att

Alexandre, a solução proposta pelo Reinaldo funcionou!
Obrigado pela ajuda.

Veja se assim atende:

Sub Desfazer()
Dim Linha As Integer, nPlan As String
nPlan = ActiveSheet.Name
Linha = Sheets("Plan1").Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
Sheets("Plan1").Activate
Sheets("Plan1").Range("A" & Linha).Select
    If MsgBox("Tem certeza que deseja apagar o último lançamento? ", vbQuestion + vbYesNo) = vbYes Then
        Sheets("Plan1").Unprotect Password:="1234"
        Sheets("Plan1").Range("A" & Linha).EntireRow.Delete
        Sheets("Plan1").Protect Password:="1234"
    End If
Worksheets(nPlan).Select
Application.ScreenUpdating = True
End Sub

Excelente! :D
Na verdade, somente precisei fazer uma pequena alteração no fim do código, pois se a base de dados for bloqueada (Plan1), me impossibilita de fazer novos lançamentos.
Muito obrigado!

Abraços.

 
Postado : 06/01/2015 10:59 am
Página 2 / 2