Boa noite galera! Hoje passei o dia todo nesse forum e consegui resolver muitos problemas mas até agora tem um que não consegui, eu tenho uma caixa de listagem em um formulário não acoplado e que exibe nomes de arquivos que estão em uma pasta, o que eu queria era que em uma caixa de texto ao digitar algum nome ou parte do nome fosse feito um filtro na caixa de listagem. Como tinha falado encontrei bons exemplos aqui, só que todos são para caixa de listagem vinculadas a uma tabela ou consulta e a minha caixa de listagem não é acoplada e nem vinculada a tabelas, por isso não está dando certo. Alguém poderia me ajudar?
3 participantes
[Resolvido]Caixa de listagem não acoplada
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº1
Caixa de listagem não acoplada
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº2
Re: [Resolvido]Caixa de listagem não acoplada
Com que dados ela é carregada? De que forma? Vindos de onde?
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº3
Re: [Resolvido]Caixa de listagem não acoplada
os dados são carregados vindo de uma pasta C:\Fotos, na caixa de listagem são exibidos os nomes das fotos, como exemplo: "235-Fernando pereira.JPG" só que com o tempo nessa pasta vai haver muitas fotos, então para facilitar queria no formulário uma caixa de texto que ao digitar parte do nome já fosse filtrando na caixa de texto.
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº4
Re: [Resolvido]Caixa de listagem não acoplada
De que forma os dados são carregados nela? Via VBA? Poste tudo referente ao mesmo para facilitar.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº5
Re: [Resolvido]Caixa de listagem não acoplada
Private Sub Form_Open(Cancel As Integer)
Dim strDiretorio, strPasta, strFicheiros
Dim fso, File
strDiretorio = "C:\Fotos\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set strPasta = fso.GetFolder(strDiretorio)
Set strFicheiros = strPasta.Files
Me.Lista0.RowSourceType = "Value List"
For Each File In strFicheiros
Me.Lista0.AddItem (File.Name)
Next
End Sub
Dim strDiretorio, strPasta, strFicheiros
Dim fso, File
strDiretorio = "C:\Fotos\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set strPasta = fso.GetFolder(strDiretorio)
Set strFicheiros = strPasta.Files
Me.Lista0.RowSourceType = "Value List"
For Each File In strFicheiros
Me.Lista0.AddItem (File.Name)
Next
End Sub
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº6
Re: [Resolvido]Caixa de listagem não acoplada
Tente algo assim no evento "Ao alterar" do campo de pesquisa:
- Código:
For Each File In strFicheiros
If File.Name Like "*" & Me.NomeCampoPesquisa.Text & "*" Then
Me.Lista0.AddItem (File.Name)
End If
Next
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº7
Re: [Resolvido]Caixa de listagem não acoplada
Na hora que eu comecei a digitar na campo de pesquisa, apareceu a mensagem:
Erro em tempo de execução 13
Tipos incompatíveis
e a parte que ele destacou do erro foi: For Each File In strFicheiros
Erro em tempo de execução 13
Tipos incompatíveis
e a parte que ele destacou do erro foi: For Each File In strFicheiros
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº8
Re: [Resolvido]Caixa de listagem não acoplada
Encontrei esse exemplo feito em VBA mas para Excel, será que não tinha como adaptar?
Option Explicit
'Autor: Tomás Vásquez.
' www.tomasvasquez.com.br/blog
' www.tomasvasquez.com.br/forum
' www.tomasvasquez.com.br/cursocsharp
'Data: 15 de Janeiro de 2007.
'Versão: 1.00 - Em VBA Microsoft Excel 2003 e 2007
Private TextoDigitado As String
Private Sub TextBox1_Change()
TextoDigitado = TextBox1.Text
Call PreencheLista
End Sub
Private Sub UserForm_Initialize()
Call PreencheLista
End Sub
Private Sub PreencheLista()
Dim ws As Worksheet
Dim i As Integer
Dim TextoCelula As String
Set ws = ThisWorkbook.Worksheets(1)
i = 1
ListBox1.Clear
With ws
While .Cells(i, 1).Value <> Empty
TextoCelula = .Cells(i, 1).Value
If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
ListBox1.AddItem .Cells(i, 1)
End If
i = i + 1
Wend
End With
End Sub
Option Explicit
'Autor: Tomás Vásquez.
' www.tomasvasquez.com.br/blog
' www.tomasvasquez.com.br/forum
' www.tomasvasquez.com.br/cursocsharp
'Data: 15 de Janeiro de 2007.
'Versão: 1.00 - Em VBA Microsoft Excel 2003 e 2007
Private TextoDigitado As String
Private Sub TextBox1_Change()
TextoDigitado = TextBox1.Text
Call PreencheLista
End Sub
Private Sub UserForm_Initialize()
Call PreencheLista
End Sub
Private Sub PreencheLista()
Dim ws As Worksheet
Dim i As Integer
Dim TextoCelula As String
Set ws = ThisWorkbook.Worksheets(1)
i = 1
ListBox1.Clear
With ws
While .Cells(i, 1).Value <> Empty
TextoCelula = .Cells(i, 1).Value
If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
ListBox1.AddItem .Cells(i, 1)
End If
i = i + 1
Wend
End With
End Sub
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº9
Re: [Resolvido]Caixa de listagem não acoplada
E ai Criquio, alguma luz para meu problema?
Avelino Sampaio- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3900
Registrado : 04/04/2010
- Mensagem nº10
Re: [Resolvido]Caixa de listagem não acoplada
Segue um exemplo. Abra o formulário e digite na caixa de texto sobre a lista.
o código utilizado é este:
Bom estudo!
o código utilizado é este:
Option Compare Database
Dim strLimpo$
Private Sub Form_Open(Cancel As Integer)
strLimpo = Me!Lista.RowSource
End Sub
Private Sub Texto8_Change()
Dim j, k%, strFiltro$
Me!Lista.RowSource = strLimpo$
j = Split(Me!Lista.RowSource, ";")
If Len(Me!Texto8.Text & "") = 0 Then Exit Sub
For k = 0 To UBound(j)
If InStr(j(k), Me!Texto8.Text) > 0 Then strFiltro = strFiltro & ";" & j(k)
Next
If InStr(strFiltro, ";") = 1 Then strFiltro = Mid(strFiltro, 2)
Me!Lista.RowSource = strFiltro
End Sub
Bom estudo!
- Anexos
- mps_rev1.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (41 Kb) Baixado 47 vez(es)
Última edição por Avelino Sampaio em 8/7/2013, 14:56, editado 1 vez(es)
.................................................................................
Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces
Clique AQUI e analise o custo beneficio do material oferecido.
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº11
Re: [Resolvido]Caixa de listagem não acoplada
Avelino eu nem cheguei a tentar o seu exemplo por que consegui de uma meneira mais simples só que diferente, ao inves de filtrar colquei para localizar o valor
After Update da caixa de texto
Me.Texto7 = Me.Lista0.Value
E ai deu certo, mas obrigado pela ajuda
After Update da caixa de texto
Me.Texto7 = Me.Lista0.Value
E ai deu certo, mas obrigado pela ajuda
» [Resolvido]caixa de listagem acoplada - como limpar
» [Resolvido]Numerar Caixa de Listagem não Acoplada
» Caixa de listagem não acoplada colocar cores nas linhas
» [Resolvido]Clikar em linha numa caixa de listagem para abrir formulario que tem outra caixa de listagem e filtrar dados
» [Resolvido]Caixa de listagem filtrar uma outra caixa de listagem com multipla seleção
» [Resolvido]Numerar Caixa de Listagem não Acoplada
» Caixa de listagem não acoplada colocar cores nas linhas
» [Resolvido]Clikar em linha numa caixa de listagem para abrir formulario que tem outra caixa de listagem e filtrar dados
» [Resolvido]Caixa de listagem filtrar uma outra caixa de listagem com multipla seleção