Boa tarde!!
Faça os testes!!
Código: Selecionar todosPrivate Sub btnPesquisar_Click()
Dim oneCell As Range
Range("T1").Value = TextBox1.Value
Range("U1").Value = TextBox2.Value
Range("V1").Value = TextBox3.Value
Range("W1").Value = TextBox4.Value
Range("X1").Value = TextBox5.Value
Range("Y1").Value = TextBox6.Value
Range("Z1").Value = TextBox7.Value
Range("AA1").Value = TextBox8.Value
Range("AB1").Value = TextBox9.Value
Range("AC1").Value = TextBox10.Value
Range("AD1").Value = TextBox11.Value
Range("AE1").Value = TextBox12.Value
Range("AF1").Value = TextBox13.Value
Range("AG1").Value = TextBox14.Value
Range("AH1").Value = TextBox15.Value
'%%%%%%%%%%%%%
Dim arr, r&, x&, Count&, LR&, myRange As Range
' Verifica a ultima linha
LR = Range("A" & Rows.Count).End(xlUp).Row
' Conjunto de intervalo
Set myRange = Range("A1:O" & LR)
' Intervalo de filtro
With Worksheets("Plan1") ' Ou use-> ActiveSheet
.AutoFilterMode = False
.Range("A1:O1").AutoFilter
.Range("A1:O1").AutoFilter Field:=1, Criteria1:=Range("T1").Value
.Range("A1:O1").AutoFilter Field:=2, Criteria1:=Range("U1").Value
.Range("A1:O1").AutoFilter Field:=3, Criteria1:=Range("V1").Value
.Range("A1:O1").AutoFilter Field:=4, Criteria1:=Range("W1").Value
.Range("A1:O1").AutoFilter Field:=5, Criteria1:=Range("X1").Value
.Range("A1:O1").AutoFilter Field:=6, Criteria1:=Range("Y1").Value
.Range("A1:O1").AutoFilter Field:=7, Criteria1:=Range("Z1").Value
.Range("A1:O1").AutoFilter Field:=8, Criteria1:=Range("AA1").Value
.Range("A1:O1").AutoFilter Field:=9, Criteria1:=Range("AB1").Value
.Range("A1:O1").AutoFilter Field:=10, Criteria1:=Range("AC1").Value
.Range("A1:O1").AutoFilter Field:=11, Criteria1:=Range("AD1").Value
.Range("A1:O1").AutoFilter Field:=12, Criteria1:=Range("AE1").Value
.Range("A1:O1").AutoFilter Field:=13, Criteria1:=Range("AF1").Value
.Range("A1:O1").AutoFilter Field:=14, Criteria1:=Range("AG1").Value
.Range("A1:O1").AutoFilter Field:=15, Criteria1:=Range("AH1").Value
End With
' Conta o número de linhas visivéis
For r = 2 To LR
If Cells(r, 1).EntireRow.Hidden = False Then Count = Count + 1
Next
' Cria um array com o número de células e colunas visivéis
ReDim arr(0 To Count - 1, 0 To 15)
x = 0
' Popula o array com dados de linhas visíveis
For r = 2 To LR
If Cells(r, 1).EntireRow.Hidden = False Then
arr(x, 0) = Range("A" & r)
arr(x, 1) = Range("B" & r)
arr(x, 2) = Range("C" & r)
arr(x, 3) = Range("D" & r)
arr(x, 4) = Range("E" & r)
arr(x, 5) = Range("F" & r)
arr(x, 6) = Range("G" & r)
arr(x, 7) = Range("H" & r)
arr(x, 8) = Range("I" & r)
arr(x, 9) = Range("J" & r)
arr(x, 10) = Range("K" & r)
arr(x, 11) = Range("L" & r)
arr(x, 12) = Range("M" & r)
arr(x, 13) = Range("N" & r)
arr(x, 14) = Range("O" & r)
x = x + 1
End If
Next
' Popula o listbox com valores do array
ListBox1.List = arr
End Sub
Att
Espero ter Ajudado.
Se a mensagem foi util Favor
Clicar na mãozinha.
Quando necessário, lembre se de marcar o tópico como
[RESOLVIDO].
Tenha um bom dia