É excel sim amigo. Tem como me passar um pequeno exemplo da função pra eu ter uma noção? Estou colando o meu código: Neste código ele só lista o último registro maior que o valor pesquisado, deve ser porque a matriz é alterada em cada if Private Sub ProcuraPersonalizada_30(ByVal Termopesquisado As Integer)
Dim busca As Range
Dim Primeira_Ocorrencia As String
Dim Resultados As String
Dim L As Integer
Ident:
Ident2:
If Termopesquisado > 999 Then
Exit Sub
End If
'Executa a busca
Set busca = Plan1.Range("M36:M60000").Find(What:=Termopesquisado, After:=Range("M36"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
'Caso tenha encontrado alguma ocorrência...
If Not busca Is Nothing Then
Primeira_Ocorrencia = busca.Address
Resultados = busca.Row 'Lista o primeiro resultado na variavel
'Neste loop, pesquisa todas as próximas ocorrências para
'o termo pesquisado
Do
Set busca = Plan1.Range("M36:M60000").FindNext(After:=busca)
'Condicional para não listar o primeiro resultado
'pois já foi listado acima
If Not busca.Address Like Primeira_Ocorrencia Then
Resultados = Resultados & ";" & busca.Row
End If
Loop Until busca.Address Like Primeira_Ocorrencia
MatrizResultados = Split(Resultados, ";")
'Atualiza dados iniciais no formulário
SpinButton1.Max = UBound(MatrizResultados) 'Valor maximo do seletor de registros
'habilita o seletor de registro
SpinButton1.Enabled = True
'indicador do seletor de registros
Label_Registros_Contador.Caption = "1 de " & UBound(MatrizResultados) + 1
'Box com o conteudo encontrado
TextBox1.Text = Plan1.Cells(MatrizResultados(0), 1).Value
TextBox2.Text = Plan1.Cells(MatrizResultados(0), 2).Value
TextBox3.Text = Plan1.Cells(MatrizResultados(0), 3).Value
TextBox4.Text = Plan1.Cells(MatrizResultados(0), 4).Value
TextBox5.Text = Plan1.Cells(MatrizResultados(0), 5).Value
TextBox6.Text = Plan1.Cells(MatrizResultados(0), 6).Value
TextBox7.Text = Plan1.Cells(MatrizResultados(0), 7).Value
TextBox8.Text = Plan1.Cells(MatrizResultados(0), 8).Value
TextBox9.Text = Plan1.Cells(MatrizResultados(0), 9).Value
TextBox10.Text = Plan1.Cells(MatrizResultados(0), 10).Value
TextBox11.Text = Plan1.Cells(MatrizResultados(0), 11).Value
TextBox12.Text = Plan1.Cells(MatrizResultados(0), 12).Value
TextBox13.Text = Plan1.Cells(MatrizResultados(0), 13).Value
TextBox14.Text = Plan1.Cells(MatrizResultados(0), 14).Value
TextBox15.Text = Plan1.Cells(MatrizResultados(0), 15).Value
TextBox16.Text = Plan1.Cells(MatrizResultados(0), 16).Value
TextBox18.Text = Plan1.Cells(MatrizResultados(0), 18).Value
TextBox19.Text = Plan1.Cells(MatrizResultados(0), 19).Value
TextBox20.Text = Plan1.Cells(MatrizResultados(0), 20).Value
TextBox21.Text = Plan1.Cells(MatrizResultados(0), 21).Value
TextBox22.Text = Plan1.Cells(MatrizResultados(0), 22).Value
TextBox23.Text = Plan1.Cells(MatrizResultados(0), 23).Value
TextBox24.Text = Plan1.Cells(MatrizResultados(0), 24).Value
Termopesquisado = Termopesquisado + 1
L = L + 1
GoTo Ident
Else 'Caso nada tenha sido encontrado, exibe mensagem informativa
Termopesquisado = Termopesquisado + 1
GoTo Ident2
SpinButton1.Enabled = False 'desabilita o seletor de registros
Label_Registros_Contador.Caption = "" 'zera os resultados encontrados
'limpa os campos do formulário
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
TextBox13.Text = ""
TextBox14.Text = ""
TextBox15.Text = ""
TextBox16.Text = ""
TextBox18.Text = ""
TextBox19.Text = ""
TextBox20.Text = ""
TextBox21.Text = ""
TextBox22.Text = ""
TextBox23.Text = ""
TextBox24.Text = ""
MsgBox "Nenhum resultado para '" & Termopesquisado & "' foi encontrado."
End If
End Sub