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!