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!