VBA – Procurando o Endereço de uma célula no Excel


Funções personalizadas são muito úteis, principalmente quando nas funções Excel falta só aquele pedaço que faria servir perfeitamente para nós. 😉

Bom, sem dor, se valor. Precisei encontrar em um determinado Range, o endereço de uma célula com base em um valor. O problema é que este Range é composto por linhas e colunas, por exemplo, A1:C30. Funções como ENDEREÇO, CORRESP e outras funcionam somente com range baseado em uma coluna, ou linha. O jeito é criar uma nova.

A função personalizada abaixo procura um valor num Range informado e retorna o endereço:

Function PROCURAENDERECO(ByVal Area As Range, ByVal Valor_Procurado As String)
 
    If Not Area.Find(Valor_Procurado) Is Nothing Then
        PROCURAENDERECO = Area.Find(Valor_Procurado).Address
    Else
        PROCURAENDERECO = CVErr(xlErrNA)
    End If
 
End Function

Se alguma célula do Range contiver o valor procurado, a função retorna o endereço da célula, ou o famoso erro #N/D. Pode obviamente ser chamada por qualquer rotina VBA. Abaixo um exemplo do resultado:

Bom proveito!




Comentários

comentários