A cada linha incluida no listbox (Formulario "UserForm1"), e "carregado" a linha de cabecalho, gerando registros adicionais
Experimente sua rotina filtro como segue:
Sub FILTRO_TEXTO()
Dim Linha As Integer, linhalistbox As Integer
Dim valor_celula As String
linhalistbox = 1
Linha = 5
ListBox1.Clear
Plan1.Select
With Plan1
With ListBox1
.AddItem
.List(0, 0) = "Código"
.List(0, 1) = "Data"
.List(0, 2) = "Mês"
.List(0, 3) = "Cliente"
.List(0, 4) = "Valor"
End With
While .Cells(Linha, 5).Value <> ""
valor_celula = .Cells(Linha, 4).Value
If UCase(Left(valor_celula, Len(TextBoxMes.Text))) = UCase(TextBoxMes.Text) Then
valor_celula = .Cells(Linha, 5).Value
If UCase(Left(valor_celula, Len(TextBoxCliente.Text))) = UCase(TextBoxCliente.Text) Then
Me.ListBox1.ColumnWidths = "40; 50; 60; 150; 100"
With ListBox1
.AddItem
.List(linhalistbox, 0) = Plan1.Cells(Linha, 2)
.List(linhalistbox, 1) = Plan1.Cells(Linha, 3)
.List(linhalistbox, 2) = Plan1.Cells(Linha, 4)
.List(linhalistbox, 3) = Plan1.Cells(Linha, 5)
.List(linhalistbox, 4) = Plan1.Cells(Linha, 6)
End With
linhalistbox = linhalistbox + 1
End If
End If
Linha = Linha + 1
Wend
End With
End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 23/02/2017 9:53 am