AW: Frage zum Change ereignis
01.06.2008 11:44:29
{Boris}
Hi Achim,
das Change-Ereignis wird
immer angestoßen, sobald sich irgendein Zellwert (oder auch mehrere gleichzeitig) durch
manuelles Zutun ändert. Dem Ereignis wird gleichzeitig über die Variable
Target mitgeteilt, um welche(n) Zellwert(e) es sich dabei handelt.
Um jetzt zwischen verschiedenen Zellen zu unterscheiden, kann man die Variable Target zu Beginn der Prozedur (die - wie gesagt - auf jeden Fall angestoßen wird) darauf hin überprüfen, ob sie sich innerhalb eines bestimmten Bereiches befindet. Eine Möglichkeit dafür ist die Intersect-Methode, die sich dann anbietet, wenn man das Ereignis auf einen bestimmten - größeren - Bereich anwenden möchte.
Will man hingegen nur auf eine einzelne Zelle überprüfen, kann man das auch dadurch zu Beginn der Prozedur bewerkstelligen, indem man die Adresse der Variable Target abfragt:
If Target.Address(0, 0) = "C5" Then...
Das (0, 0) ist Teil der Address-Eigenschaft: Es bedeutet, dass sowohl Zeile als auch Spalte
relativ ausgegeben werden. Lässt Du (0, 0) weg (wie von Hajo geschrieben), dann musst Du den Rückgabewert der Address-Eigenschaft auch auf einen
absoluten Zellbezug prüfen:
If Target.Address = "$C$5" Then...
Ist Jacke wie Hose, jedoch hab ich mich an den relativen Bezug gewöhnt - daher schreibe ich immer (0, 0).
Alles klar?
Grüße Boris