Check out range.find in excel's vba Help.
There's a snippet of code like:
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
adapt it along the lines of:
With Rng
Small = Application.WorksheetFunction.Min(Rng)
Set c = .Find(Small, LookIn:=xlValues, lookat:=xlWhole, searchformat:=False)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Select
MsgBox "Note selected cell"
Set c = .FindNext(c) 'for FindNext to work properly, rng should be one contiguous block of cells.
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With