Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Filtro em ListView [RESOLVIDO]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
avgsantos
Colaborador
Colaborador
Mensagens: 93
Registrado em: Ter Fev 02, 2016 6:39 pm

Filtro em ListView [RESOLVIDO]

Mensagem por avgsantos »

Boa noite, Pessoal do Fórum

Não estou conseguindo solucionar o problema abaixo, tenho um formulário que busca o registro de um cliente dentro da listview conforme o código abaixo da primeira parte, até ai tudo bem está funcionando, minha duvida é a segunda parte "filtro" conforme eu digito uma palavra ele filtra a palavra e retorna o valor digitado blz, agora quando eu apago a palavra do textbox "txt_busca" estão retornando todos os registro de todos os clientes o correto seria retorna o valor somente daquele cliente. Seria possível fazer isso: Obrigado mais uma vez

'''''''primeira parte
Sub busca_regitros()
Dim linha As Integer
Dim codigo As String
linha = 2
codigo = txt_codigo
Sheets("Faltas e Saidas").Select
list_historico.ListItems.Clear

Do Until Sheets("Faltas e Saidas").Cells(linha, 1) = ""

If Sheets("Faltas e Saidas").Cells(linha, 1) = codigo Then

'coloca o cabeçalho no listview historico
With list_historico
.ColumnHeaders.Clear
.Gridlines = True
.View = lvwReport
.FullRowSelect = True

.ColumnHeaders.Add , , " Data", 48
.ColumnHeaders.Add , , " Motivo / Observação", 315
.ColumnHeaders.Add , , " Cadastrado", 54
.ColumnHeaders.Add , , " ID", 20
End With

'Adiciona os dados a listview historico
Set li = list_historico.ListItems.Add(Text:=Format(Sheets("Faltas e Saidas").Cells(linha, 4).Value, "dd/mm/yyyy")) 'Data
li.SubItems(1) = Sheets("Faltas e Saidas").Cells(linha, 3).Value 'Motivo
li.SubItems(2) = Sheets("Faltas e Saidas").Cells(linha, 5).Value 'Cadastrado
li.SubItems(3) = Sheets("Faltas e Saidas").Cells(linha, 6).Value 'Id
End If

linha = linha + 1
Loop

lbl_registros = "Total de Ocorrencia: " & Me.list_historico.ListItems.Count
End Sub

'''''''''''''Segunda Parte
Private Sub txt_busca_Change()
Dim valor_pesq As String
Dim linha As Integer
Dim coluna As Integer
Dim valor_celula As String
valor_pesq = txt_busca.Text
coluna = 3
linha = 2
list_historico.ListItems.Clear
Plan7.Select
With Plan7
While .Cells(linha, coluna).Value <> Empty
valor_celula = .Cells(linha, coluna).Value
If UCase(Left(valor_celula, Len(valor_pesq))) = UCase(valor_pesq) Then
Set li = list_historico.ListItems.Add(Text:=Plan7.Cells(linha, 4).Value) 'Data
li.ListSubItems.Add Text:=Plan7.Cells(linha, 3).Value 'Motivo
li.ListSubItems.Add Text:=Plan7.Cells(linha, 5).Value 'Cadastrado
li.ListSubItems.Add Text:=Plan7.Cells(linha, 6).Value 'ID
End If
linha = linha + 1
Wend
End With
lbl_registros = "Total de Ocorrencia: " & Me.list_historico.ListItems.Count
End Sub
Editado pela última vez por avgsantos em Dom Set 04, 2016 12:25 pm, em um total de 1 vez.


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.


avgsantos
Colaborador
Colaborador
Mensagens: 93
Registrado em: Ter Fev 02, 2016 6:39 pm

Re: Filtro em ListView

Mensagem por avgsantos »

Boa noite, Pessoal

Segue o aquivo excel para entender melhor, o filtro funciona porém quando eu apago a palavra do campo buscar ele retorna todos os valores dos cliente da tabela.
Anexos
Controle de Pessoall.rar
(37.06 KiB) Baixado 521 vezes


avgsantos
Colaborador
Colaborador
Mensagens: 93
Registrado em: Ter Fev 02, 2016 6:39 pm

Re: Filtro em ListView

Mensagem por avgsantos »

Boa noite, Pessoal

Adicionei esta linha de comando " If Len(txt_busca.Text) = 0 Then cbx_nome_Change: Exit Sub " no evento txt_busca_Change( ), porém não tive sucesso, não estou conseguindo filtrar no texto busca a ocorrência somente daquele cliente selecionado, está filtrando a ocorrência de todos os clientes cadastrados, seria possível filtrar somente naquele cliente selecionado?

Obrigado
avgsantos


avgsantos
Colaborador
Colaborador
Mensagens: 93
Registrado em: Ter Fev 02, 2016 6:39 pm

Re: Filtro em ListView

Mensagem por avgsantos »

Boa tarde, Pessoal do Fórum

Segue anexo a imagem detalhado passo a passo onde não estou conseguindo resolver me problema.
Anexos
Forrmulario de Cliente.rar
(79.63 KiB) Baixado 427 vezes


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.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Filtro em ListView

Mensagem por Reinaldo »

Experimente alterar na rotina -->Private Sub txt_busca_Change()
a linha conforme destacado abaixo
....
While .Cells(linha, coluna).Value <> Empty
valor_celula = .Cells(linha, coluna).Value
If UCase(Left(valor_celula, Len(valor_pesq))) = UCase(valor_pesq)And Me.txt_codigo.Text = .Cells(linha, 1) Then
....


avgsantos
Colaborador
Colaborador
Mensagens: 93
Registrado em: Ter Fev 02, 2016 6:39 pm

Re: Filtro em ListView

Mensagem por avgsantos »

Boa tarde, Reinaldo

Ok, deu certo, problema resolvido.

Obrigado pela ajuda.

Grato

Avgsantos


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.


Responder