I'm not sure that you need do events.

Also, I really don't like multiple declares in a single line, at least one of the reasons you've demonstrated:
dim r, fnd as range
does not declare both items as a range. R is declared as a variant. You end up setting it to a range later, but this is probably not what you intended.