Try changing:
If intendedpath.Cells(i).Borders(direction).LineStyle <> xlNone Or Intersect(intendedpath.Cells(i + myStep), Range("AllowedRange")) Is Nothing Then
Set reachedcell = intendedpath.Cells(i)
Beep ' sound.
Exit For
Else
to:
If intendedpath.Cells(i).Borders(direction).LineStyle <> xlNone Or Intersect(intendedpath.Cells(i + myStep), Range("AllowedRange")) Is Nothing Then
Beep ' sound.
resetStartPosn 'optional
Exit Sub 'For
Else
where you can comment out resetStartPosn to prevent the bee moving at all.