![]() |
||
![]() |
Makro beim Zellenwechsel auf einen Bereich begrenzenIn der Ausgabe 7/2000 haben Sie eine Makro-Ausfⁿhrung beim Wechsel der aktiven Zelle vorgestellt. Kann ich dieses Makro auch auf einen bestimmten Bereich einer Tabelle beschrΣnken, so dass das Makro nur dann ablΣuft, wenn sich der Cursor zum Beispiel im Bereich D4:E20 befindet? Ja, das ist praktisch m÷glich. Allerdings k÷nnen Sie nicht das Ausfⁿhren des Makros selbst verhindern, weil es als Prozedur fⁿr das Ereignis ╗SelectionChange½ bei jeder ─nderung der aktiven Zelle das kleine Programm in Gang setzt. Stattdessen mⁿssen Sie die Bedingungen fⁿr die Makro-Ausfⁿhrung in das Makro selbst integrieren. Dort prⁿfen Sie zunΣchst mit zwei IF-Anweisungen die aktuelle Cursorposition. Nur wenn sich der Cursor im geforderten Bereich befindet, werden die anderen Anweisungen des Makros ausgefⁿhrt. Dazu mⁿssen sich alle eigentlichen Anweisungen des Makros zwischen der Anweisung ╗IF½ und der zugeh÷rigen Anweisung ╗END IF½ befinden. Ein Beispiel fⁿr die Ereignisprozedur sieht folgenderma▀en aus: Private Sub Worksheet_Select tionChange(ByVal Target As t Excel.Range) If ActiveCell.Column >=4 t And ActiveCell.Column <= 5 Then If ActiveCell.Row >=4 t And ActiveCell.Row <= 20 t Then ...(weitere Anweisungen) End If End If End Sub Das Makro prⁿft in diesem Beispiel zuerst einmal, ob die aktuelle Spalte gr÷▀er oder gleich 4 und kleiner oder gleich 5 ist. Danach prⁿft es, ob die aktuelle Zeile zwischen 4 und 20 liegt. Nur wenn beide Bedingungen erfⁿllt sind, kommen die weiteren Anweisungen zur Ausfⁿhrung. Bei dem Einsatz dieses Makros mⁿssen Sie noch beachten, dass das Ausfⁿhren der Anweisungen nicht von der bisher aktiven Zelle, sondern von der aktiven Zelle nach dem Zellwechsel abhΣngig ist. |
![]() |