Das automatische Drehfeld in Microsoft Excel

Trotz allem Komfort, den Microsoft Excel bietet, fehlt ein nützliches Feature: Ein Drehfeld am Zellrand, mit dem sich der Wert in der Zelle per Mausklick erhöhen oder verringern lässt. Das spart viel Zeit bei der Aktualisierung von Excel-Blättern mit großen Zahlenmengen, da sich die Werte alleine mit der Maus ändern lassen, ohne, dass Sie die Tastatur benutzen müssen. Ignatz Schels beschreibt, wie Sie diese Aktion auch ohne Programmierkenntnisse mit zwei kleinen Makros einfach umsetzen.

Trotz allem Komfort, den Microsoft Excel bietet, fehlt ein nützliches Feature: Ein Drehfeld am Zellrand, mit dem sich der Wert in der Zelle per Mausklick erhöhen oder verringern lässt (Bild 1). Das spart viel Zeit bei der Aktualisierung von Excel-Blättern mit großen Zahlenmengen, da sich die Werte alleine mit der Maus ändern lassen, ohne die Tastatur benutzen zu müssen.

Mit zwei kleinen Makros lässt sich diese Aktion einfach umsetzen, Programmierkenntnisse sind dafür nicht erforderlich. Für das hier vorgestellte Beispiel reicht es aus, wenn Sie wie unten beschrieben den gelisteten Makrocode (siehe auch Datei "Makrocode.txt") an die entsprechende Stelle in der Arbeitsmappe kopieren.

Bild 1: Das Drehfeld erscheint automatisch, sobald eine Zelle mit Zahlenwert angeklickt wird.

Die einzige Einschränkung ist, dass Drehfelder nur ganze Zahlen im Zahlenbereich von 0 bis 30.000 schreiben können. Die Schrittweite, mit der sie den Inhalt der verknüpften Zelle erhöhen oder verringern, lässt sich in den Eigenschaften festlegen. (Mehr Informationen zu Formularelementen und Drehfeldern: Aus der Excel-Trickkiste. Fortgeschrittene Techniken für Projektleiter. Teil 1: Ein Projektplan mit Teamauswahl, Projekt Magazin 20/2010 und Teil 2: Portfolio-Auswahl mit dynamischen Diagrammen, Projekt Magazin 21/2010)

Funktionsweise des Makros

Die Funktionsweise des Makros ist verhältnismäßig einfach: "SelectionChange" heißt das Ereignis, das mit der Positionierung des Zellzeigers ausgelöst wird. Es wird so programmiert, dass jede markierte Zelle automatisch ihr Drehfeld am rechten Rand erhält. Der Trick dabei: Als Position des Drehfelds wird einfach die linke obere Ecke der nächsten Zelle verwendet. "Target" ist der Objektname der Zelle, "target.next" liefert die Informationen über die nächste Zelle.

Aber Vorsicht: Da das Drehfeld nur dann erscheinen soll, wenn die markierte Zelle einen Zahlenwert enthält, muss das Makro zuerst prüfen, ob der Zellinhalt numerisch ist. Außerdem darf der Zellzeiger nicht in der letzten Spalte des Tabellen-Blatts stehen, da das Drehfeld dann nicht in der Ecke des nächsten Felds angezeigt werden kann. Auch bei verbundenen Zellen oder einer Mehrfachauswahl gibt es Probleme. Und natürlich darf die Zelle keine Formel enthalten, denn das Drehfeld würde diese überschreiben. Alle diese Fälle prüft das Makro ab. Tritt einer der genannten Fälle auf, springt es ohne das Drehfeld anzuzeigen an das Ende ("no Show").

Listing 1 zeigt den Makrocode mit Kommentaren zu den einzelnen Anweisungen.

Listing 1: Makrocode, um ein automatisches Drehfeld zu erzeugen.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngCell, spB As Shape, spbBreite As Integer
' Schalter
If Range("IV1").Value = "no spB" Then GoTo noShow
' Wenn mehr als eine Zelle markiert ist,
' bei verbunden Zellen oder wenn
Anzeige
Jetzt kostenlos weiterlesen!
Abonnenten des Projekt Magazins wissen mehr!
Starten Sie jetzt unser 4-wöchiges Kennenlern-Angebot: Die Anmeldung dauert nur ein paar Minuten – Sie können also gleich weiterlesen.
  • KostenlosDas Kennenlern-Angebot kostet Sie nichts.
  • Kein RisikoSie können jederzeit kündigen, ohne dass Ihnen Kosten entstehen.
  • Einen Monat lang alles lesen4 Wochen Online-Zugriff auf alle Inhalte des Projekt Magazins.
Tech Link