Página 1 de 1
Deletar item da planilha através da Listbox
Enviado: 29 Ago 2017 às 08:42
por juliotorres
Bom dia, caros colegas.
Estou tentando deletar um item da minha planilha através da listbox, mas não está dando certo.
O que está errado nesse comando? Alguém pode me ajudar?
Dim indice As Integer
indice = ListBox2.ListIndex 'Verifica qual a linha está selecionada no listbox
If MsgBox("Deseja excluir este item ?", vbExclamation + vbYesNo) = vbYes Then
Rows(indice).Delete 'Deleta a linha na planilha de acordo com o indice selecionado
MsgBox "Item deletado com sucesso", vbInformation
End If
Aguardo e agradeço.
Re: Deletar item da planilha através da Listbox
Enviado: 29 Ago 2017 às 12:18
por babdallas
Segue exemplo.
Deletar item da planilha através da Listbox
Enviado: 29 Ago 2017 às 12:39
por juliotorres
Não deu certo, babdallas!
No anexo que você enviou funcionou, mas quando eu passei para o meu projeto e substituí onde precisava substituir, retornou o erro "Não é possível obter a propriedade Match da classe WorksheetFunction".
No caso, eu tenho várias planilhas onde eu escolho em qual delas vou deletar através de uma combobox. Talvez seja isso.
Como substituir a linha abaixo quando se tem mais de uma sheet?
************** Seu código ********************
Private Sub cmdExcluir_Click()
Dim lngLinha As Long
Dim rngUltcel As Range
Set rngUltcel = Planilha1.Cells(Rows.Count, 2).End(xlUp)
With frmListbox.lstItem
lngLinha = Application.WorksheetFunction.Match(CLng(.List(.ListIndex, 1)), Planilha1.Range(Planilha1.Cells(2, 2), Planilha1.Cells(rngUltcel.Row, 2)), 0) + 1
End With
Rows(lngLinha).Delete
MsgBox "Dado excluído com sucesso"
End Sub
************** Seu código alterado ********************
Private Sub ExcluirP_Click()
Dim lngLinha As Long
Dim rngUltcel As Range
Set rngUltcel = Plan2.Cells(Rows.Count, 2).End(xlUp)
With NF.ListBox2
lngLinha = Application.WorksheetFunction.Match(CLng(.List(.ListIndex, 1)), Plan2.Range(Plan2.Cells(2, 2), Plan2.Cells(rngUltcel.Row, 2)), 0) + 1
End With
Rows(lngLinha).Delete
MsgBox "Dado excluído com sucesso"
End Sub
Re: Deletar item da planilha através da Listbox
Enviado: 29 Ago 2017 às 13:53
por babdallas
Crie uma variável do tipo Worksheet (Dim wstPlan as worksheet) e depois seta ela conforme vc escolher na combobox (set wstPLan = worksheets("frm.cboPLan.text")
Então você usa wstPLan no lugar de plan2 do seu código. Tenta aí. Caso não consiga, coloca sua planilha em anexo que vejo para você.
Re: Deletar item da planilha através da Listbox
Enviado: 29 Ago 2017 às 13:54
por babdallas
Corrigindo: set wstPLan = worksheets(frm.cboPLan.text)
cboPlan é um nome fictício que dei à combobox. Substitua pelo nome da sua.
Re: Deletar item da planilha através da Listbox
Enviado: 29 Ago 2017 às 14:11
por wesleyribeiro123
Amigo
Veja isto...
Deletar item da planilha através da Listbox
Enviado: 29 Ago 2017 às 19:42
por juliotorres
Wesley e babdallas, deu certo o comando, porém, ele deleta a linha inteira e como eu tenho outras tabelas dinâmicas na mesma planilha, ele deleta linhas das outras tabelas também.
Tem como deletar somente de uma tabela específica, ou de um range?
Re: Deletar item da planilha através da Listbox
Enviado: 29 Ago 2017 às 22:17
por babdallas
Uma pequena alteração para deletar somente os dados e não a linha. Veja o anexo.
Deletar item da planilha através da Listbox
Enviado: 30 Ago 2017 às 08:46
por juliotorres
Valeu colegas! Muito obrigado Wesley e babdallas!