Prezados
Muitas vezes precisei fazer um VLOOKUP mas a coluna de resposta estava antes da coluna de procura.
De tanto sofrer eu criei essa function que resolve isso. Espero que sirva de ajuda para algum
Ps.: Ele identifica se esta na Vertical (vlookup) ou horizontal (hlookup).
Function Vlocar(Procurar As Variant, RangeProc As Range, RangeResult As Range)
Dim proc
Dim vlocL
Dim ativoL
Dim ResultC
Dim ResultL
Vlocar = "#N/A" 'Default
On Error GoTo jump 'se erro, default
If RangeProc.Rows.Count >= RangeProc.Columns.Count Then 'Vertical ou Horizontal
ativoL = RangeProc.Row 'Define 1º lin da matriz Procurada
ResultL = RangeResult.Row 'Define 1º lin da matriz Resultado
ResultC = RangeResult.Column 'Define 1º col da matriz Resultado
vlocL = RangeProc.Find(Procurar).Row + ResultL - 1 'Procura na matriz Procurada
Vlocar = Cells(vlocL - ativoL + 1, ResultC).Value 'Resposta
Else
ativoL = RangeProc.Column
ResultL = RangeResult.Column
ResultC = RangeResult.Row
vlocL = RangeProc.Find(Procurar).Column + ResultL - 1
Vlocar = Cells(ResultC, vlocL - ativoL + 1).Value
End If
On Error GoTo 0
jump:
End Function
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 16/07/2013 2:36 pm