Číslo riadka a stĺpca ľavej hornej bunky rozsahu Target zistíš pomocou Target.Row a Target.Column. Predpokladám, že po stlačení klávesy F1 sa dozvieš viac (aj klávesa F2 je zaujímavá). Asi budeš chcieť prebehnúť všetky bunky v rozsahu Target pomocou konštrukcie For Each.
Ukážka toho, ako zabrániť rekurzívnemu volaniu obsluhy udalosti, je v mojom predchádzajúcom príspevku - nastavením Application.EnableEvents. Tu musíš myslieť na to, aby si túto vlastnosť na konci nastavil na True, pretože inak by si domakroval. Preto je tam použité OnError, aby sa to spamätalo aj v prípade nejakej chyby.
Dá sa to robiť aj cez globálnu premennú, ale celý program je potom o trochu neprehľadnejší. Globálnu premennú si vytvoríš rovnako, ako vo všetkých iných programovacích jazykoch, ktoré globálne premenné podporujú - umiestniš deklaráciu premennej mimo definíciu funkcie/procedúry (Dim Zmena As Boolean).