Ez egy eseményvezérelt eljárás, ami a Change eseményhez van rendelve, vagyis akkor mûködik, ha valamelyik cellában változtatod az értéket.
Az If Target.Address = "$A$1" Then sorral lekérdezzük a bevitel címét (Target.Addres). Ha ez $A$1, vagyis az A1 cellában módosítottuk az értéket, akkor növelje a Cells(1,2) (B1) értékét a bevitel értékével (Target.Value) – Cells(1,2)=Cells(1,2)+Target.Value. Ezt úgy kell érteni, hogy a B1 legyen az eddigi B1, plusz a most bevitt érték.
A Cells(1,2)-ben az 1 a sor-, a 2 az oszlop száma. A C1 cellára Cells(1,3) formával hivatkozhatunk.
Te most az A1 és a B1 változását akarod figyeltetni. Ebben az esetben 3 feltételt kell figyeltetned.
1. a bevitel az A oszlopban történt-e?
2. vagy a B oszlopban?
3. az elsõ sorban?
Ha a makróból hiányoznak a feltételek, a változtatás a teljes lap bármelyik cellájának módosulásánál végrehajtódik, ebbõl kavalkád, és végtelen ciklus jönne létre.
A két oszlop figyelését egyszerre is megadhatjuk:
If Target.Column<3
ehhez egy ÉS kapcsolattal hozzá kell rendelni a sor figyelését:
And Target.Row=1
Nem írom tovább, mert akkor megakadályozlak az önálló makróírásban.