Per applicare la macro a più intervalli non contigui ti basta specificarli

codice:
If Not Intersect(Target, Range("c1:c10,e6:e8,h1:h2")) Is Nothing Then
Alla prima domanda non so risponderti. Mi spiace.