Hallo alle zusammen, suche schon seit zwei Tagen nach einer Lösung für mein Problem. Vielleicht kann man mir hier helfen. Habe in einem Excel-Tabellenblatt in vielen Zellen ein Drop Down Menü mit einer Auswahlliste von Zahlen. Um zur Auswahl zu gelangen, klicke ich auf die jeweilige Zelle, dann auf den Pfeil und anschliessend auf die entsprechende Ziffer. Würde es gerne so haben, dass sich das Drop Down Menü schon öffnet, sobald ich die Zelle anklicke. Das sollte dann für alle Zellen mit hinterlegtem Drop Down Menü der gesamten Tabelle funktionieren. Lässt sich da mit VBA etwas machen. Habe leider keine Ahnung im Umgang mit VBA. Eine genaue Beschreibung wäre deshalb sehr hilfreich für mich. Herzlichen Dank schon einmal im Voraus.
Hallo herztreu,
ich habe dir mal einen kurzen Makro geschrieben, der hoffentlich das tut, was du möchtest. Hier mal eine Schritt-für-Schritt Anleitung.
Mach einen Rchtsklick auf den Reiter des Tabellenblattes und wähle „Code anzeigen“.
Der VBA Editor geht auf.
In das große Fenster rechts oben fügst du den folgenden Code ein:
Option Explicit
Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
Dim typ As Long
On Error Resume Next
typ = Target.Validation.Type
If Err.Number = 0 Then Application.SendKeys "%{DOWN}"
Err.Clear
On Error GoTo 0
End Sub
Jetzt kannst du den VBA-Editor wieder zumachen.
Der Code ist eine sog, Ereignisprozedur. Sie läuft immer automatisch an, wenn du in der Tabelle auf eine andere Zelle wechselst, sei es per Pfeiltasten, oder mit Mausklick.
Die Prozedur überprüft, ob die ausgewählte Zelle ein Dropdown-Menü hat. Wenn ja, wird der Tastencode „Alt - Pfeiltaste nach unten“ an Excel gesendet. Das ist die Tastenkombination, mit der du auch von Hand das Dropdonwmenü öffnen könntest.
Anmerkung 1:
Wie gesagt läuft der Makro nur an, wenn du die Zelle wechselst. Wenn du in eine schon ausgewählte Zelle klickst, passiert nichts. Dafür gibt es in VBA leider keine definierte Prozedur.
Anmerkung 2:
Aus irgendwelchen unerfindlichen Gründen wird jedesmal wenn die Prozedur läuft die NumLock-Taste der Tastatur umgeschaltet, je nachdem entweder von Aus nach An oder An nach Aus. Ich habe nicht die leiseste Ahnung, woran das liegt. Wenn man „Alt - Pfeiltaste nach unten“ von Hand betätigt, passiert das nicht. EXPERTEN VOR!!
Probier’s mal aus und gib Bescheid ob’s klappt.
Gruß, Andreas
Hallo Andreas,
Vielen herzlichen Dank für Deine viele Mühe, die Du Dir mit meinem Problem gemacht hast und die ausführliche Anleitung. Genau das Richtige für einen Laien wie mich. Habe inzwischen auf einer anderen Seite einer Newsgroup auch etwas gefunden, das ich für meine Tabelle ausprobiert habe. Die von Dir beschriebenen Besonderheiten mit der NumLock-Taste habe ich dabei nicht beobachtet. Schreibe hier einmal den gefundenen Code auf. Wie gesagt, ist nicht von mir. Würde es selbst leider nicht hinbekommen.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = „$D$1“ Then SendKeys „%{Down}“
End Sub
Gruß
herztreu
'nabend herztreu,
danke für dein Posting.
Das was der Makro, den du gepostet hast, macht, funktioniert natürlich, ist aber etwas unschön: Immer wenn du auf D1 klickst, schickt er „Alt-Pfeil nach unten“. Er versucht also ein Drop-Down Menü zu öffnen, auch wenn garkeines existiert. Das musst du dann „von Hand“ immer wieder zuklappen. Wenn’s dir genügt, alles klar.
Gruß, Andreas