Notifications
Clear all

Listbox Erro '381'

9 Posts
2 Usuários
0 Reactions
1,664 Visualizações
 Nego
(@nego)
Posts: 0
New Member
Topic starter
 

Boa tarde!

Tenho o seguinte código que está dando o erro (muito comum): "Não foi possível definir a propriedade List. Índice de matriz de propriedade inválido."

Eu tenho 3 Listbox. A Listbox1 carrega os nomes de todas as colunas da Planilha ("2012-2014"), na Listbox2 eu coloco só as colunas que eu quero. Na Listbox3 vai carregar só as colunas que eu selecionei na Listbox2 quando eu clicar no CommandButton1.

Mas está dando o erro acima. Eu já tentei muitas variações no código mas continua dando o mesmo erro. Esse código abaixo é o último que eu testei.

Detalhe: com uma coluna só na Listbox3 só estava dando certo, mas aí as colunas da Planilha ("2012-2014") ficavam uma debaixo da outra, o que não me serve.

Senhores, por favor, me ajudem!

Private Sub CommandButton1_Click()

Dim itens As Integer
Dim x, i As Integer
Dim col, conteudo As String

Sheets("2012-2014").Select
ActiveSheet.Range("A1").Select
itens = ListBox2.ListCount
ListBox2.ColumnCount = itens
ListBox3.Clear

col = ""
conteudo = ""
x = 0
i = 0

For x = 0 To itens

colbusca = ListBox2.List(x)

If ActiveCell.Value = colbusca Then
col = "A"
Else
ActiveCell.Offset(0, 1).Select
End If

For i = 1 To 20

conteudo = ActiveSheet.Range(col & i).Value

With ListBox3
.AddItem
If ListBox2.ListCount > 1 Then
.List(i, x) = conteudo <----------- É aqui que o erro ocorre
Else
.List(i) = conteudo <--------------Ou ainda aqui, dependendo do IF
End If
End With

Next i

ActiveCell.Offset(0, 1).Select

Next x

End Sub

 
Postado : 02/06/2014 1:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde Nego,

Altera essa linha:
For i = 1 To 20
por essa:
For i = 0 To 20

Qualquer coisa da o grito.
Abraço

 
Postado : 02/06/2014 2:09 pm
 Nego
(@nego)
Posts: 0
New Member
Topic starter
 

Meu caro Bernardo, grato pela rápida resposta.

Fiz conforme sua sugestão. Porém, ele deu erro justamente na linha logo abaixo:

conteudo = ActiveSheet.Range(col & i).Value

Erro 1004: "Erro de definição de aplicativo ou de definição de objeto."

Porém novamente, o 1 tem que ficar lá mesmo, porque ele refere-se à linha "1" da Listbox. Mas, ficou a dúvida: a Listbox começa na linha 1 ou na 0?

 
Postado : 02/06/2014 2:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Então coloca assim:
conteudo = ActiveSheet.Range(col & i + 1).Value

A listbox começa do 0.

Qualquer coisa da o grito.
Abraço

 
Postado : 02/06/2014 2:33 pm
 Nego
(@nego)
Posts: 0
New Member
Topic starter
 

Companheiro, fiz tudo como suas orientãções e o erro persiste.

Estou anexando a planilha e, se puder, dê uma olhada no código completo para vc ter uma noção melhor, talvez só a parte do código que eu coloquei não esteja dando informação suficiente pra vc analisar.

Funciona assim: O formulário abre com as colunas da planilha carregadas em forma de lista na Listbox1, eu clico e arrasto os itens para a Listbox2 conforme as colunas que eu quero e clicando no CommandButton1("Inserir Dados") ele deveria carregar somente as colunas selecionadas na Listbox2 para a Listbox3 em forma de colunas novamente puxando da planilha.

Não sei se ficou confuso meu caro, mas é isso aí. Qualquer coisa me pergunta que estou por aqui.

Valeu mesmo!

 
Postado : 03/06/2014 7:08 am
 Nego
(@nego)
Posts: 0
New Member
Topic starter
 

Meus caros, alguma novidade deste "pequeno" erro?

Se eu não conseguir passar por essa parte do código não consigo concluir a Planilha.

S.O.S.

 
Postado : 03/06/2014 1:23 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Nego,

Cara, vê se ajuda.

Qualquer coisa da o grito.
Abraço

 
Postado : 04/06/2014 7:41 am
 Nego
(@nego)
Posts: 0
New Member
Topic starter
 

Bom dia Nego,

Cara, vê se ajuda.

Qualquer coisa da o grito.
Abraço

Companheiro, muito obrigado, ajudou demais, agora eu posso partir pra próxima fase, criar os gráficos.
Um grande abraço!

 
Postado : 05/06/2014 4:39 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

8-)

 
Postado : 05/06/2014 5:05 am