It appears to be because the .Find isn't finding a match, even though the value exists ... probably something to do with the value not being exactly as displayed.

Changing the line where you set dMax to:

dMax = Round(WorksheetFunction.Max(.Columns(8)), 2)
Seems to fix it.