Amigo,
Fiz uma função que pode te ajudar.
Seria melhor ao invés de selecionar uma coluna inteira (por que gasta mais processamento), você deveria selecionar um Range, tipo do A1 ao A (ultima linha preenchida) por exemplo.
Function Buscar(Valor As String, coluna As String)
' Declaração das Variáveis
Dim rng As Variant
Dim linhas As String
Dim cont As Long
Dim bool As Boolean
' Inialização das Variáveis
bool = False
cont = 1
' Define o range
rng = ThisWorkbook.Sheets("Plan1").Columns(coluna)
' Texto inicial
linhas = "Linhas Encontradas para o item " & "[" & Valor & "]" & vbCrLf & vbCrLf
' Loop no range
For Each y In rng
' Caso haja alguma combinação
If InStr(1, y, Valor, vbBinaryCompare) > 0 Then
' Preenche o texto inicial com a linha atual
linhas = linhas & "Linha " & cont & vbCrLf
' Indica que pelo menos um valor foi encontrado
bool = True
End If
cont = cont + 1
Next
' Se pelo menos um valor foi encontrado
If bool = True Then
' mensagem com as linhas encontradas
Buscar = linhas
Else
' Senão retorna mensagem sem registro
Buscar = "Nenhum Registro Encontrado !"
End If
End Function
Sub Valor()
MsgBox Buscar("Carlos", "A:A")
End Sub
espero ter ajudado.
At.
Ricardo.
http://xlssolution.blogspot.com.br/