- 23 Ago 2016 às 22:37
#14293
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