Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Filtro em ListView [RESOLVIDO]
Filtro em ListView [RESOLVIDO]
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
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.
Re: Filtro em ListView
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.
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
Re: Filtro em ListView
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
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
Re: Filtro em ListView
Boa tarde, Pessoal do Fórum
Segue anexo a imagem detalhado passo a passo onde não estou conseguindo resolver me problema.
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
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Filtro em ListView
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
....
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
....
Re: Filtro em ListView
Boa tarde, Reinaldo
Ok, deu certo, problema resolvido.
Obrigado pela ajuda.
Grato
Avgsantos
Ok, deu certo, problema resolvido.
Obrigado pela ajuda.
Grato
Avgsantos