Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

ERRO EM TEMPO DE EXECUÇÃO 381

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Vagnfer
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Seg Abr 15, 2019 3:35 pm

ERRO EM TEMPO DE EXECUÇÃO 381

Mensagem por Vagnfer » Qua Abr 24, 2019 2:26 pm

"ERRO EM TEMPO DE EXECUÇÃO 381
NÃO FOI POSSÍVEL OBTER A PROPRIEDADE LIST. ÍNDICE DE MATRIZ DE PROPRIEDADE INVÁLIDO "

Tem outro modo de escrever esse comando ??



Private Sub ListBox3_Change()
TextBox_grupo_altera.Text = ListBox3.List(ListBox3.ListIndex, 0)
TextBox_tipo_altera.Text = ListBox3.List(ListBox3.ListIndex, 1)
TextBox_data_altera.Text = ListBox3.List(ListBox3.ListIndex, 2)
TextBox_valor_altera.Text = ListBox3.List(ListBox3.ListIndex, 3)
TextBox_obs_altera.Text = ListBox3.List(ListBox3.ListIndex, 4)

End Sub



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 753
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: ERRO EM TEMPO DE EXECUÇÃO 381

Mensagem por srobles » Qua Abr 24, 2019 4:43 pm

Vagnfer,

O controle ListBox possui as 5 colunas habilitadas?
Pois se houverem apenas 4 colunas por exemplo, a ultima vai gerar este tipo de erro por não existir.

Elaborei um modelo aqui, e em meus testes não enfrentei erros de nenhum tipo utilizando esse evento do ListBox.

Se puder, disponibilize um modelo compactado (.zip ou .rar) com dados ficticios, para que possamos analisar

PS : Durante testes, me deparei com o erro citado quando limpei o conteúdo do ListBox. Ao limpar (e acredito que ao remover itens) o ListBox gera o evento Change, ocasionando o erro.
Se este for o seu cenário, temos 2 possibilidades mais práticas :

1) Tratar o erro, exemplo :

Código: Selecionar todos

Private Sub ListBox1_Change()
   On Error Goto trataerro
   TextBox1 = ListBox3.List(ListBox3.ListIndex, 0)
   TextBox2 = ListBox3.List(ListBox3.ListIndex, 1)
   TextBox3 = ListBox3.List(ListBox3.ListIndex, 2)
   TextBox4 = ListBox3.List(ListBox3.ListIndex, 3)
   TextBox5 = ListBox3.List(ListBox3.ListIndex, 4)
   
trataerro:
   If Err = 381 then
      TextBox1 = ""
      TextBox2 = ""
      TextBox3 = ""
      TextBox4 = ""
      TextBox5 = ""
   End If
End Sub

2) Validar a quantidade de itens no ListBox :

Código: Selecionar todos

Private Sub ListBox1_Change()
    With Me
        If .ListBox1.ListCount = 0 Then
            .TextBox1 = ""
            .TextBox2 = ""
            .TextBox3 = ""
            .TextBox4 = ""
            Exit Sub
        Else
            .TextBox1 = .ListBox1.List(.ListBox1.ListIndex, 0)
            .TextBox2 = .ListBox1.List(.ListBox1.ListIndex, 1)
            .TextBox3 = .ListBox1.List(.ListBox1.ListIndex, 2)
            .TextBox4 = .ListBox1.List(.ListBox1.ListIndex, 3)
        End If
    End With
End Sub
Espero ter ajudado.

Abs


Espero ter ajudado.

Abs.

Saulo Robles


Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

Responder