Dropdownfeld per VBA automatisch aufklappen

Bild

Betrifft: Dropdownfeld per VBA automatisch aufklappen
von: Martin
Geschrieben am: 04.05.2015 13:18:30

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?

Bild

Betrifft: AW: Dropdownfeld per VBA automatisch aufklappen
von: Bernd
Geschrieben am: 04.05.2015 13:24:26
Hallo!
denke so was war schon mal hier gefragt:
https://www.herber.de/forum/archiv/1044to1048/1044906_Dropdown_automatisch_aufklappen.html
lg Bernd

Bild

Betrifft: AW: Dropdownfeld per VBA automatisch aufklappen
von: Martin
Geschrieben am: 04.05.2015 13:32:58
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...

Bild

Betrifft: AW: Dropdownfeld per VBA automatisch aufklappen
von: Luschi
Geschrieben am: 04.05.2015 23:39:32
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dropdownfeld per VBA automatisch aufklappen"