Rob hat eine Reihe von Arbeitsblättern, mit denen Bewertungen bewertet werden. Das erste Arbeitsblatt enthält Zellen für Name, Datum usw. und dann mehrere Spalten, in die die Multiple-Choice-Antworten eingegeben werden können. Das Blatt ist geschützt, sodass nur Eingabezellen geändert werden können. Wenn der Benutzer die letzte Zelle in einer Spalte beendet hat, springt der Fokus zur nächsten ungeschützten Zelle, bei der es sich möglicherweise um die erste Zelle in der nächsten Spalte oder um die Zelle „Datum“ handelt. Rob fragt sich, wie er den Fokus so steuern kann, dass der Wert, wenn er in die letzte (untere) Zelle einer Spalte eingegeben wird, in eine von ihm angegebene Zelle verschoben wird.

In Excel gibt es keine integrierte Möglichkeit, dies zu tun, da das Programm seine eigene Reihenfolge für die Auswahl der nächsten Zelle festlegt. Sie können ändern, welche Zelle als Nächstes ausgewählt wird, wenn Sie in einem Arbeitsblatt die Eingabetaste drücken. Sie können jedoch nicht ändern, was passiert, wenn Sie in einem geschützten Arbeitsblatt die Tabulatortaste drücken.

Standardmäßig werden Zellen im Arbeitsblatt von links nach rechts und dann von oben nach unten ausgewählt.

Wenn Sie ändern möchten, was passiert, wenn die Tabulatortaste gedrückt wird, müssen Sie ein Makro verwenden, um die Auswahlreihenfolge zu steuern.

Das folgende Makro ist ein Beispiel; es bewegt sich zu Zelle D5, wenn es Zelle C10 verlässt, und zu E5, wenn es Zelle D10 verlässt:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False     If Target.Address = "$C$10" Then Range("D5").Select     If Target.Address = "$D$10" Then Range("E5").Select     Application.EnableEvents = True End Sub

Das Problem bei der Verwendung einer solchen VBA-Lösung besteht darin, dass Ihre Tabelle – insbesondere wenn es sich um eine große handelt – etwas träger wird. Makros bedeuten naturgemäß auch, dass die Funktion „Rückgängig“ deaktiviert ist.

Wenn Ihre Anforderungen an die Tab-Reihenfolge komplexer sind, könnte Sie der auf dieser Webseite beschriebene Code interessieren:

http://www.ozgrid.com/forum/showthread.php?t=82272

Wie Sie sehen, kann der Code manchmal ziemlich komplex werden. Ein solcher Ansatz macht es natürlich schwieriger, Änderungen am Design des Arbeitsblatts selbst vorzunehmen, da er alle Bewegungen von Zelle zu Zelle festlegt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (10313) gilt für Microsoft Excel 97, 2000, 2002 und 2003.

Eine Version dieses Tippes für die Multifunktionsleistenoberfläche von Excel (Excel 2007 und höher) finden Sie hier: