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.
#48109
Olá,
Estou fazendo um formulário de cadastro, onde eu clico em um item no Litsbox, e os dados são carregados no formulário com base em uma planilha. Tudo estava funcionando bem, até que eu fui fazer um filtro no listbox, com o que fosse digitado no campo NOME FANTASIA, e começou dar erro. O filtro funciona direitinho, mas ao clicar no item do listbox que deveria carregar o formulário vêm o erro. Queria que os dados fossem carregados nos campos como antes, só que agora, sejam as informações do item filtrado. Estou postando um imagnes exemplo, e abaixo os códigos que estão atualmente nos controles. Desde já agradeço.

Mensagem de Erro: ERRO EM TEMPO DE EXECUÇÃO 381: Não foi possível obter a propriedade List. Índice de matriz de propriedade inválido.

Código do Textbox que faz o filtro no Listbox

Private Sub txt_nome_fantasia_Change()
Dim guia As Worksheet
Dim linha As Integer
Dim coluna As Integer
Dim linhalistbox As Integer
Dim valor_celula As String
Dim conta_registros As Integer
Dim valor_pesquisado As String
Dim produtos
Set guia = ThisWorkbook.Worksheets("Fornecedor")

valor_pesquisado = Me.txt_nome_fantasia.Text

linha = 3
coluna = 6
linhalistbox = 0
conta_registros = 0

Me.ListBox2.Clear

With guia
While .Cells(linha, coluna).Value <> Empty
valor_celula = .Cells(linha, coluna).Value

If UCase(Left(valor_celula, Len(valor_pesquisado))) = UCase(valor_pesquisado) Then

With Me.ListBox2
.AddItem
.List(linhalistbox, 0) = Sheets("Fornecedor").Cells(linha, 1)
.List(linhalistbox, 1) = Sheets("Fornecedor").Cells(linha, 2)
.List(linhalistbox, 2) = Sheets("Fornecedor").Cells(linha, 3)
.List(linhalistbox, 3) = Sheets("Fornecedor").Cells(linha, 4)
.List(linhalistbox, 4) = Sheets("Fornecedor").Cells(linha, 5)
.List(linhalistbox, 5) = Sheets("Fornecedor").Cells(linha, 6)
.List(linhalistbox, 6) = Sheets("Fornecedor").Cells(linha, 7)
.List(linhalistbox, 7) = Sheets("Fornecedor").Cells(linha, 8)
.List(linhalistbox, 8) = Sheets("Fornecedor").Cells(linha, 9)
.List(linhalistbox, 9) = Sheets("Fornecedor").Cells(linha, 10)


linhalistbox = linhalistbox + 1
conta_registros = conta_registros + 1
End With

End If
linha = linha + 1
Wend
End With
' filtro2 ' chama o procedimento segundo filtro que mostra o código da empresa' segundo filtro que mostra o código da empresa
produtos = conta_registros & " Produtos Cadastrados"
End Sub

=====================================================================================

Código do Listbox que carrega os campos do formuláro

Private Sub ListBox2_Change()

txt_cod_sap.Text = ListBox2.List(ListBox2.ListIndex, 0)
txt_status.Text = ListBox2.List(ListBox2.ListIndex, 1)
txt_cnpj.Text = ListBox2.List(ListBox2.ListIndex, 2)
txt_razao_social.Text = ListBox2.List(ListBox2.ListIndex, 3)
txt_nome_fantasia.Text = ListBox2.List(ListBox2.ListIndex, 4)
txt_insc_estadual.Text = ListBox2.List(ListBox2.ListIndex, 5)
txt_email.Text = ListBox2.List(ListBox2.ListIndex, 6)
cbx_ramo.Text = ListBox2.List(ListBox2.ListIndex, 7)
txt_nome_contato.Text = ListBox2.List(ListBox2.ListIndex, 8)
txt_contato_fone.Text = ListBox2.List(ListBox2.ListIndex, 9)
txt_logradouro.Text = ListBox2.List(ListBox2.ListIndex, 12)
txt_cidade.Text = ListBox2.List(ListBox2.ListIndex, 13)
cbx_recibo.Text = ListBox2.List(ListBox2.ListIndex, 14)
cbx_pagamento.Text = ListBox2.List(ListBox2.ListIndex, 15)
cbx_prazo.Text = ListBox2.List(ListBox2.ListIndex, 16)

End Sub





Pablo Moreira
#48110
Segue modelo do que estou fazendo. Ela é de meu uso pessoal. Veja que a medida em que se preenche o campo NOME FANTASIA, o listbox aplica o filtro. O que eu queria, era que depois de filtrado, ao clicar no item do listbox, os campos TEXTBOX's sejam preenchidos. Só que ao fazer isso, vêm o erro. Antes de inserir o código do filtro, o preenchimento funcionava normalmente, mas, preciso do filtro pois são muitos fornecedores para encontrar.

Obrigado
Você não está autorizado a ver ou baixar esse anexo.
#48120
Veja se resolveu.
Você não está autorizado a ver ou baixar esse anexo.
#48121
Ótimo babdallas . Muito obrigado, deu certo!
Só mais uma coisa. Sabe dizer pq alguns campos fica em branco, mesmo tendo informações na planilha?
Acho que tem a ver com o preenchimento da Listbox ao abrir o formulário, mas não estou conseguindo preencher o Listbox com as colunas faltantes. Pode me ajudar?
Você não está autorizado a ver ou baixar esse anexo.
#48144
Relate com detalhe quais campos estão retornando e em qual ocasião, por favor.
#48146
Os campos que não estão sendo alimentados são os seguintes:

-Endereço
-Cidade/Estado
-Recibo
-Pagamento
-Prazo
-Contato (Telefone)

Esses campos, são dados estão depois da décima coluna da planilha, tentei acrescentá-las, mas, deu erro, e não conseguir concluir.

Obrigado
#48203
A forma de incluir dados em uma listbox com mais de 10 colunas precisa ser alterada. Veja o link abaixo para se informar melhor. Veja depois a solução que te mandei e me diga se atende.

https://www.tomasvasquez.com.br/blog/mi ... 0-colunas/
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