You're welcome, and thanks for the kind feedback 
To also go through a manual list, if the value is not present in the input list, try if this works for you (see attached):
Sub Main()
Dim rngIn As Range, rngOut As Range, rngManual As Range
Dim rngFind As Range, c As Range
'define input range
With ThisWorkbook.Sheets("Input").Columns("A:B")
Set rngIn = .Range(.Cells(1), .Find("*", , , , xlByRows, xlPrevious)).Resize(, 3)
End With
'define output range
With ThisWorkbook.Sheets("Output")
Set rngOut = .Range("A2", .Range("A" & Rows.Count).End(xlUp))
End With
'define manual list
With ThisWorkbook.Sheets("Mannual list")
Set rngManual = .Range("A2", .Range("A" & Rows.Count).End(xlUp))
End With
'loop through cells in output range
For Each c In rngOut
'lookup against input range
Set rngFind = rngIn.Find(c.Value, , xlValues, xlWhole)
'if found in input range, use that
If Not rngFind Is Nothing Then
c(1, 2).Value = Intersect(rngFind.EntireRow, rngIn.Columns(rngIn.Columns.Count)).Value
Set rngFind = Nothing
'if not found, then go through the manual list, else "not present"
Else
Set rngFind = rngManual.Find(c.Value, , xlValues, xlWhole)
If Not rngFind Is Nothing Then
c(1, 2).Value = rngFind(1, 2).Value
Set rngFind = Nothing
Else
c(1, 2).Value = "not present"
End If
End If
Next c
'clean up
Set rngIn = Nothing
Set rngOut = Nothing
Set rngManual = Nothing
End Sub
Best,
berlan
Bookmarks