Ele funciona até uma linha acima.
Esse é o código completo ve se da pra fazer alguma coisa:
Private Sub cbo_Serviços_Change()
valor_pesq = cbo_Serviços.Text
Dim guia As Worksheet
Dim linha As Integer
Dim coluna As Integer
Dim coluna_data As Integer
Dim linhalistbox As Integer
Dim valor_celula As String
Dim valor_celula_data As Date
Dim conta_registros As Integer
Dim data_inicio As Date
Dim data_fim As Date
Set guia = ThisWorkbook.Worksheets(2)
linhalistbox = 0
conta_registros = 0
linha = 2
coluna = 8
coluna_data = 7
lst_busca.Clear
ThisWorkbook.Worksheets("ServiçosNF").Select
With guia
While .Cells(linha, coluna).Value <> Empty
'valor_celula = .Cells(linha, coluna).Value 'recebe o valor da célula para fazer o teste
'valor_celula_data = .Cells(linha, coluna_data).Value 'recebe o valor da data para fazer o teste
'Condição para satisfazer a busca tem que ser igual ao valor da texbox1 e estar entre o valor inicial e final das datas
If UCase(Left(valor_celula, Len(valor_pesq))) = UCase(valor_pesq) And valor_celula_data >= data_inicio _
And valor_celula_data <= data_fim Then
'adiciona itens a listbox
With lst_busca
.AddItem
.List(linhalistbox, 0) = Sheets("ServiçosNF").Cells(linha, 1)
.List(linhalistbox, 1) = Sheets("ServiçosNF").Cells(linha, 2)
.List(linhalistbox, 2) = Sheets("ServiçosNF").Cells(linha, 3)
.List(linhalistbox, 3) = Sheets("ServiçosNF").Cells(linha, 4)
.List(linhalistbox, 4) = Sheets("ServiçosNF").Cells(linha, 5)
.List(linhalistbox, 5) = Sheets("ServiçosNF").Cells(linha, 6)
.List(linhalistbox, 6) = Sheets("ServiçosNF").Cells(linha, 7)
.List(linhalistbox, 7) = Sheets("ServiçosNF").Cells(linha, 8)
linhalistbox = linhalistbox + 1
End With
conta_registros = conta_registros + 1
End If
linha = linha + 1
Wend
End With
End Sub
Postado : 13/11/2013 8:39 am