Try this code instead. You call the function from another routine as needed. You will have to change the worksheet "Your worksheet of data" to whatever sheet you want to search.
Sub main22()
findItem "blue", "Your worksheet of data"
End Sub
Function findItem(SearchItem As String, wksName As String)
Dim x As Long
Dim y As Long
Dim last_Row As Long
Dim last_Column As Long
Dim wksName As String
'wksName = "Your worksheet of data"
Worksheets(wksName).Activate
last_Row = Cells.Find("*", Searchorder:=xlByRows, SearchDirection:=xlPrevious).Row
last_Column = Cells.Find(what:="*", After:=[A1], Searchorder:=xlByColumns, SearchDirection:=xlPrevious).Column
For x = 1 To last_Column
For y = last_Row To 1 Step -1
If Cells(y, x).Value = SearchItem Then
Cells(y, x).Activate
MsgBox "Found item in column " & x & " row " & y
Exit Function
Else
'do nothing
End If
Next y
Next x
MsgBox "Item not found", vbOKOnly
End Function
EDIT: Also, if you are searching for the same string of text everytime then of course you will find it in the same place. Hopefully that's not the issue here.
Bookmarks