Notifications
Clear all

Erro desconhecido no vb

6 Posts
3 Usuários
0 Reactions
1,231 Visualizações
(@regis147)
Posts: 16
Eminent Member
Topic starter
 

Pessoal estou com um erro que eu desconheço no VB, vou passar aqui o erro que está dando ""erro em tempo de excução '-2147467259(80004005)':"" erro não especificado.
estou tentando excluir um item selecionado em um Listbox porem ele retorna esse erro.
segue os códigos

Private Sub CommandButton2_Click()
'botão atualisa lista do list box
ListBox1.ColumnCount = 3
    ListBox1.RowSource = "Plan1!A1:C14"
    ListBox1.Font.Size = 10
    ListBox1.Font.Name = "Verdana"
    On Error GoTo TrataErro
ListBox1.ColumnCount = 3
ListBox1.RowSource = "Plan1!A1:C14"
ListBox1.Font.Size = 10
ListBox1.Font.Name = "Verdana"
Exit Sub
 
TrataErro:
   MsgBox "Erro " & Err.Description, vbCritical, "Erro"
End Sub

e

Private Sub CommandButton1_Click()
'botão deleta item selecionado no listbox
For I = 0 To ListBox1.ListCount
If I >= ListBox1.ListCount Then Exit For
    If ListBox1.Selected(I) = True Then
        ListBox1.RemoveItem (I)
        I = I - 1
    End If
        Next I
End Sub

o erro está dando no 2º código que acima, qualquer ajuda é bem vinda desde já muito obrigado.

 
Postado : 16/02/2014 4:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Enquanto o pessoal responder, seria bom postar seu arquivo modelo compactado!

Att

 
Postado : 16/02/2014 4:47 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Bom, eu não utilizo listbox, mas, pelo teu código:

Suponto qe vc tenha 5 elementos (só pra contextualizar:

Essa linha:

For I = 0 To ListBox1.ListCount

Seria interpretada como "Fo I = 0 to 5"

O I começaria em 0, e depois, com essa linha:

I = I - 1

Teríamos 0 - 1, ou seja, I passa a ser -1

Porém, o campo do laço (For Next) está entre 0 e 5 (no exemplo).

Por acaso, a linha

I = I - 1

Não seria:

I = I + 1

?

 
Postado : 16/02/2014 4:55 pm
(@regis147)
Posts: 16
Eminent Member
Topic starter
 

Sim sim... obrigado pela dica !!!!

 
Postado : 16/02/2014 4:57 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Seria isso o que vc pretende?

Private Sub CommandButton1_Click()
For I = 1 To ListBox1.ListCount
If I >= ListBox1.ListCount Then Exit For
    If ListBox1.Selected(I) = True Then
        'ListBox1.RemoveItem (I)
        Range("Plan1!A" & I & ":C" & I).Delete
        'I = I - 1
    End If
        Next I
End Sub
 
Postado : 16/02/2014 5:13 pm
(@regis147)
Posts: 16
Eminent Member
Topic starter
 

sim quase isto porem não sei se você reparou no codigo ele exclui a linha acima da que vc seleciona, mas esta totalmente certo agora só vou tratar de acertar
este detalhe mas é bem isso mesmo que eu queria vou tentar alterar o codigo aqui se eu não obtver sucesso voltarei aqui a encher o saco mas creio que não..
do mais Muito obrigado vc solucionou o meu problema fico muito grato mesmo, espero poder lhe ajudar em uma proxima vez. obrigado mesmo Deus nos abençoe !!!

 
Postado : 16/02/2014 5:22 pm