Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dropdownfeld per VBA automatisch aufklappen

Forumthread: Dropdownfeld per VBA automatisch aufklappen

Dropdownfeld per VBA automatisch aufklappen
04.05.2015 13:18:30
Martin
In Excel 2003 verwende ich diesen Code, um beim Anklicken einer Zelle automatisch das Dropdownfeld aufzuklappen und alle Einträge (definiert über Daten-Gültigkeit-Liste) anzuzeigen.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
'Hierdurch wird bei Aktivierung von Dropdownzellen Dropdown sofort automatisch aufgeklappt:
If ActiveCell.Validation.InCellDropdown = False Then Exit Sub
Application.SendKeys ("%{UNTEN}")
End Sub
Unter Excel 2010 funktioniert das nun das nun aber nicht mehr. Gibt es eine andere Lösung, die möglichst auch abwärtskompatibel ist?

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dropdownfeld per VBA automatisch aufklappen
04.05.2015 13:32:58
Martin
ja, den hatte ich gefunden, aber die Lösung passt nicht ganz, da ich nicht jede Zelle einzeln angeben möchte.
Aber bei nochmaligem Hinsehen hatte ich eine Idee, die zur Lösung führte:
Anstelle von
Application.SendKeys ("%{UNTEN}")
muss
Application.SendKeys ("%{Down}")
in meinem Code benutzt werden, dann geht es. Jetzt muss ich nur noch klären, ob Down auch unter Excel 2003 funktioniert.
Mal ganz allgemein: In unserem Unternehmen steht ein Wechsel von Office 203/Outlook 2007 auf Office 2010 und Outlook 2010 an. Ich habe einige kleinere VBA-gestützte Excel-Anwendungen, die z.T. mit Outlook kommunizieren. Ob da große Probleme mit VBA-Anpassungen zu erwarten sind? Die Umstellung von Office 2000 auf Office 2007 in einem früheren Unternehmen war jedenfalls die Hölle...

Anzeige
AW: Dropdownfeld per VBA automatisch aufklappen
04.05.2015 23:39:32
Luschi
Hallo Martin,
Application.SendKeys ist seit Windows-Vista sehr stark betriebssystemabhängig!
So funktioniert bei mir mit Windows 8.1 der Vba-Befehl:
Application.SendKeys "%{DOWN}"
weder mit Excel 2003/2010 noch 2013
Deshalb mache es so:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim wshShell As Object
On Error Resume Next
'Hierdurch wird bei Aktivierung von Dropdownzellen Dropdown sofort automatisch  _
aufgeklappt:
If ActiveCell.Validation.InCellDropdown = False Then Exit Sub
On Error GoTo 0
'ab Windows-Vista nicht mehr zuverlässig
'Application.SendKeys "%{DOWN}", False
Set wshShell = CreateObject("WScript.Shell")
wshShell.SendKeys "%{DOWN}", True
Set wshShell = Nothing
End Sub
Das klappt mit allen 3 oben aufgeführten Excel-Versionen.
Gruß von Luschi
aus klein-Paris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Dropdownfeld in Excel automatisch aufklappen


Schritt-für-Schritt-Anleitung

Um ein Dropdownfeld in Excel automatisch aufzuklappen, kannst du den folgenden VBA-Code verwenden. Dieser Code funktioniert in verschiedenen Excel-Versionen, einschließlich Excel 2003, 2010 und 2013.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das Arbeitsblatt aus, in dem du das Dropdownfeld automatisch aufklappen möchtest.
  3. Füge den folgenden Code in das Arbeitsblattmodul ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim wshShell As Object
    On Error Resume Next
    If ActiveCell.Validation.InCellDropdown = False Then Exit Sub
    On Error GoTo 0
    Set wshShell = CreateObject("WScript.Shell")
    wshShell.SendKeys "%{DOWN}", True
    Set wshShell = Nothing
End Sub
  1. Schließe den VBA-Editor und teste das Dropdownfeld, indem du auf eine Zelle klickst, die ein Dropdown-Menü enthält.

Häufige Fehler und Lösungen

  • Fehler: Der Befehl Application.SendKeys funktioniert nicht.

    • Lösung: Verwende stattdessen CreateObject("WScript.Shell"), um das Dropdownfeld aufzurufen, wie im obigen Code gezeigt.
  • Fehler: Dropdownfeld öffnet sich nicht unter Excel 2010 oder 2013.

    • Lösung: Stelle sicher, dass du den richtigen Code verwendest und dass die Zelle über eine gültige Daten-Gültigkeit-Liste verfügt.

Alternative Methoden

Eine alternative Methode, um das Dropdownfeld aufzuklappen, ist die Verwendung von Excel-Formeln oder die manuelle Ausführung. Du kannst auch das Dropdown-Menü über die Daten-Gültigkeitsprüfung in den Excel-Einstellungen steuern.

  1. Gehe zu Daten > Datenüberprüfung.
  2. Wähle die Liste aus, die du für das Dropdownfeld verwenden möchtest.
  3. Aktiviere die Option "Dropdown in Zelle anzeigen".

Praktische Beispiele

Wenn du den VBA-Code erfolgreich implementiert hast, teste ihn mit einem Dropdownfeld. Hier sind einige Beispiele für Dropdown-Listen:

  • Eine Liste von Produkten:

    • Apfel
    • Banane
    • Orange
  • Eine Liste von Ländern:

    • Deutschland
    • Frankreich
    • Italien

Diese Listen kannst du in einer Zelle erstellen und das Dropdownfeld durch Klicken auf die Zelle öffnen.


Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere On Error-Anweisungen, um unerwartete Fehler zu vermeiden.
  • Teste in verschiedenen Excel-Versionen: Achte darauf, dass dein Code in mehreren Excel-Versionen funktioniert, insbesondere wenn du in einem Unternehmen arbeitest, das verschiedene Versionen verwendet.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, damit du später nachvollziehen kannst, was jeder Teil des Codes bewirkt.

FAQ: Häufige Fragen

1. Warum funktioniert Application.SendKeys nicht bei mir? Application.SendKeys kann je nach Betriebssystem und Excel-Version unzuverlässig sein. Verwende stattdessen CreateObject("WScript.Shell").

2. Ist der VBA-Code in allen Excel-Versionen kompatibel? Der bereitgestellte Code sollte in Excel 2003, 2010 und 2013 funktionieren. Es ist jedoch ratsam, die Funktionalität in deiner spezifischen Umgebung zu testen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige