688742

Excel 97-2003: Automatisch zur Eingabezelle springen

Sie füllen in einer Excel-Tabelle regelmäßig Zellen in einer bestimmten Reihenfolge aus. Sie geben zum Beispiel in Spalte B den Arbeitsbeginn und in Spalte E das Arbeitsende ein. Die anderen Spalten berechnet Excel aus diesen Werten. Sie wollen, dass der Cursor nach dem Ausfüllen einer Zelle der Spalte B automatisch nach E springt und umgekehrt, und zwar reihenweise nach unten. Unser Makro sorgt dafür, dass Excel nach einer Eingabe in eine Zelle der Spalte B den Cursor automatisch in Spalte E verschiebt. Wir stellen Ihnen dieses Makro vor.

Anforderung:

Fortgeschrittener

Zeitaufwand:

Mittel

Problem:

Sie füllen in einer Excel-Tabelle regelmäßig Zellen in einer bestimmten Reihenfolge aus. Sie geben zum Beispiel in Spalte B den Arbeitsbeginn und in Spalte E das Arbeitsende ein. Die anderen Spalten berechnet Excel aus diesen Werten. Sie wollen, dass der Cursor nach dem Ausfüllen einer Zelle der Spalte B automatisch nach E springt und umgekehrt, und zwar reihenweise nach unten.

Lösung:

Unser Makro sorgt dafür, dass Excel nach einer Eingabe in eine Zelle der Spalte B den Cursor automatisch in Spalte E verschiebt. Zur Installation öffnen Sie Ihre Arbeitszeittabelle und dann den Visual-Basic-Editor über "Extras, Makro, Visual Basic-Editor“. Importieren Sie im VBA-Editor über "Datei, Datei importieren“ die pcwSpwechsel.BAS . Schließen Sie die Datei mit der Arbeitszeittabelle. Nach dem nächsten Öffnen springt der Cursor nach einer Eingabe in Spalte B direkt in die Spalte E.

Wenn Sie ausnahmsweise doch einmal eine andere Zelle bearbeiten wollen, brauchen Sie sie nur anzuklicken. Das Makro wird wieder aktiv, sobald Sie eine Zelle in der Spalte B oder E ausfüllen. Entsprechende VBA-Kenntnisse vorausgesetzt, können Sie das Makro natürlich an Ihre Bedürfnisse anpassen.

Eine Excel-Einstellung erschwert dem Makro die an sich einfache Aufgabe: Das Verhalten des Cursors nach dem Drücken der <Return>-Taste ist nämlich nicht eindeutig, sondern hängt von der Option "Markierung nach dem Drücken der Eingabetaste verschieben“ unter "Extras, Optionen, Bearbeiten“ ab. Das Makro überprüft daher zunächst, ob diese Option aktiviert ist (Standard). Ist das nicht der Fall, gibt es bei der Ausführung des Makros keine Probleme. Wenn sie jedoch aktiviert ist, dann ist auch eine Richtung definiert (Standard "Unten“), in die der Cursor nach <Return> springt.

Das ist eine lästige Fehlerquelle für Makros dieser Art: Excel führt das Makro nach dem Betätigen der Eingabetaste nämlich zuerst komplett aus. Erst danach schließt es die Zelleingabe wirklich ab, wechselt also beispielsweise in eine Zelle nach unten, wenn als Richtung "Unten“ eingestellt ist.

Das Makro müsste aus diesem Grund so gestaltet sein, dass die Markierung zunächst um eine Zelle über das geplante Ziel hinaus verschoben wird, wenn man es bei der Standardeinstellung "Unten“ belässt. Allerdings tritt dann beim Ausfüllen der ersten Zeile ein Fehler auf: Das Makro versucht, den Cursor in eine Zelle außerhalb des Tabellenbereichs zu verschieben. Wir haben das Makro daher soeingestellt, dass es die Richtung auf "Rechts“ ändert, falls Sie die Option "Markierung nach dem Drücken der Eingabetaste verschieben“ aktiviert haben. Der Cursor wird in diesem Fall zunächst in Spalte D verschoben.

0 Kommentare zu diesem Artikel
688742