This works to locate the first instance found:

Sub FindData()

FindIT = InputBox("Find What?")

On Error GoTo NotFound

Sheets("Part Number Database").Select

    Cells.FIND(What:=FindIT, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
       .Activate
     
    MsgBox (ActiveCell.Value) 

NotFound:
    MsgBox ("the entry cannot be found")

End Sub
I want to add a Loop to Loop until the it searches all the way thru and the first instance is found again, but I can't make it work

Sub FindData()

FindIT = InputBox("Find What?")

On Error GoTo NotFound

Sheets("Part Number Database").Select

‘Here I want to add something that defines the first address found, like:
Found = Cells.FIND(What:=FindIT, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not Found Is Nothing Then
FirstAdd = Found.Address


‘Now I want to loop though until the Data Found is the same as the
'First Instance of the Data but my loop doesn’t work
Do
    Cells.FIND(What:=FindIT, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
       .Activate
     
‘At this point I want to make the MsgBox change to Yes/No 
‘where Yes Exits the sub and No Loops thru again…but how to do it???
	MsgBox (ActiveCell.Value), vbYesNo
               If vbYes Then
               Exit Sub
               If vbNo Then
Loop Until ActiveCell.Address = FirstAdd

NotFound:
    MsgBox ("the entry cannot be found")

End Sub
I get an error Loop without Do