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.
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!
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.