Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#25926
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.
#25939
Segue exemplo.
Você não está autorizado a ver ou baixar esse anexo.
#25941
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
#25944
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ê.
#25945
Corrigindo: set wstPLan = worksheets(frm.cboPLan.text)

cboPlan é um nome fictício que dei à combobox. Substitua pelo nome da sua.
#25959
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?
#25961
Uma pequena alteração para deletar somente os dados e não a linha. Veja o anexo.
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord