Clever-Excel-Forum

Normale Version: DropDown (Datenüberprüfung) bei Aktivierung automatisch aufklappen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forum,

alternativ zur bekannten Methode, ein DropDown-Objekt aus der Datenüberprüfung per Sendkeys automatisch aufzuklappen, hier eine alternative Lösung mit der Maus, sozusagen als virtueller Mitarbeiter....

Code:

Private Declare PtrSafe Function SetCursorPos Lib "user32" ( _
        ByVal x As Long, ByVal y As Long) As Long
Private Declare PtrSafe Function GetCursorPos Lib "user32" ( _
        lpPoint As POINTAPI) As Long
Private Type POINTAPI
    x As Long
    y As Long
End Type

Private Declare PtrSafe Sub mouse_event Lib "user32" ( _
        ByVal dwFlags As Long, _
        ByVal dx As Long, ByVal dy As Long, _
        ByVal cButtons As Long, ByVal dwExtraInfo As LongPtr)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Datenüberprüfung (Dropdown) automatisch aufklappen
  Dim Pt As POINTAPI
  
  On Error GoTo Fehler
' Testen, ob Dropdown vorhanden
  If Target.Validation.Type <> xlValidateList Then Exit Sub

  With ActiveWindow.ActivePane
       GetCursorPos Pt              ' Mausposition retten
       SetCursorPos .PointsToScreenPixelsX(Target.Offset(1, 1).Left) + 10, _
                    .PointsToScreenPixelsY(Target.Offset(1, 1).Top - 10)
       mouse_event &H6, 0, 0, 0, 0  ' Buttonclick leftdown + leftup
       SetCursorPos Pt.x, Pt.y      ' Alte Mausposition wiederherstellen
  End With
Fehler:
End Sub

_________
viele Grüße
Karl-Heinz