Notifications
Clear all

VBA - exlcuir linha com base na resposta em uma tabela

2 Posts
2 Usuários
0 Reactions
661 Visualizações
(@israelcord)
Posts: 1
New Member
Topic starter
 

Bom dia... Estou começando agora a mexer no VBA, e estou com uma grande dúvida. Em uma aula para montagem de formulários VBA, criei um botão de exclusão de cadastros existentes, no exemplo da aula, o professor usa as linhas normais do excel, eu já gosto de usar tabelas com filtros, aquelas prontas que o excel oferece. Nesse vba eu digito o nome do produto num campo do form chamdo txtNome, ele pesquisa e me retorna o valor respectivo da tabela, quando vou excluir da um erro na linha onde é selecionado o item da exclusão, acredito que tenho que me referir a tabela onde quero excluir a linha, mas não sei como o fazer.

Segue programação:

Private Sub cmdExcluir_Click()
'Declarar a variável Resp para receber uma resposta
Dim Resp As Integer
'Fazer a busca do registro digitado pelo usuário
With Worksheets("LtEPIS").Range("E:E")
Set c = .Find(txtNome.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
Resp = MsgBox("Tem certeza que deseja excluir o registro?", vbYesNo, "Confirmação")
If Resp = vbYes Then
c.Select
Selection.EntireRow.Delete (Linha onde ocorre o erro, acredito que tenho que me referir a tabela, mas não sei o fazer)
'Limpar as caixas de texto
txtNome.Value = Empty
txtCA.Value = Empty
txtDataValidade.Value = Empty
txtFornecMarca.Value = Empty
txtDescricao.Value = Empty
txtDataCad.Value = Empty
'Colocar o foco na primeira caixa de texto
txtNome.SetFocus
Else
MsgBox "O registro não será excluído!"
End If
Else
MsgBox "EPI não encontrado!"
End If
End With
Exit Sub

End Sub

Desde já grato.

 
Postado : 03/08/2015 10:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O ideal seria ter colocado a mensagem de erro, pois analisando a rotina não tem erro, logico que depende de como está utilizando pelo formulário.

Quero dizer que possíveis erros podem ocorrer, se :
1º ) A aba onde irá excluir a linha estiver protegida;
2º ) Se a aba em foco não for a especificada na rotina, ou seja o foco está em outra, se em rotinas anteriores usou Application.ScreenUpdating = False

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/08/2015 11:47 am