Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Doppelklick mit Maus simulieren

Betrifft: Doppelklick mit Maus simulieren von: Thomas
Geschrieben am: 18.09.2014 21:23:05

Hallo!
Ich stehe noch vor folgenden Problem:
Mit untenstehenden Quellcode aktiviere ich eine Datenbank.
Mit F7 öffnet sich dann ein Unterformular. Dann geht der Curser eine Zeile nach unten.
Bis hierher funktioniert es wunderbar.
Aber nach Application.SendKeys "{DOWN}" benötige ich einen Doppelklick,
damit sich was öffnet. Wie kriege ich den Doppelklick hin?
Im Zuge einer Automatisierung soll der Doppelklick mit der Maus wegfallen und soll
automatisch ausgeführt werden. Hier bin ich leider überfordert!
Gibt es dazu überhaupt eine Lösung?

AppActivate "Datenbank", True
Application.SendKeys "{F7}"
Application.SendKeys "{DOWN}"
"Doppelklick Maus"

  

Betrifft: AW: Doppelklick mit Maus simulieren von: Martin
Geschrieben am: 18.09.2014 23:49:48

Hallo Thomas,

hier kommt dein Doppelklick:

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

Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4


Sub Doppelklick_Links()
    Dim i As Integer
    
    For i = 1 To 2
        mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
        mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
    Next i
End Sub
Viele Grüße

Martin


  

Betrifft: AW: Doppelklick mit Maus simulieren von: Thomas
Geschrieben am: 19.09.2014 06:50:55

Guten Morgen Martin!
Ich probiere es heute gleich aus!
Danke!


  

Betrifft: AW: Doppelklick mit Maus simulieren von: Thomas
Geschrieben am: 19.09.2014 18:27:32

Hallo Martin!
Habe heute in der Arbeit rumprobiert, aber leider funktioniert es nicht.
Wo muss ich denn den Quelltext einbauen, damit die Steuerung eines Drittprogramms über SendKey funktioniert?
Ich starte über einen Button auf einer Userform und habe so eingefügt:

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

Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4


Sub Doppelklick_Links()
Dim i As Integer

For i = 1 To 2
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
Next i
End Sub

Private Sub CommandButton1_Click()
AppActivate "Kundendatei", True 'Kundendatei öffnet sich!
Application.Wait (Now + TimeValue("0:00:02"))
Application.SendKeys ("%o") 'Unterformular wird geöffnet
Application.Wait (Now + TimeValue("0:00:02"))
Application.SendKeys ("Down") 'Focus geht nach unten
Doppelklick_Links 'es wird kein Doppelklick ausgeführt.
End Sub
Oder muss ich deinen Code in ein Module einfügen?
Der Doppelklick sollte nach Application.SendKeys ("Down") automatisch ausgeführt werden, ohne mein zutun. Aber es geht nicht.
Kannst du weiterhelfen?


  

Betrifft: AW: Doppelklick mit Maus simulieren von: Thomas
Geschrieben am: 21.09.2014 13:22:13

Hallo Martin!
Handelt es sich hierbei um eine Call-Anweisung?


  

Betrifft: AW: Doppelklick mit Maus simulieren von: Thomas
Geschrieben am: 21.09.2014 13:38:26

Hallo Martin!
Handelt es sich hierbei um eine Call-Anweisung?


  

Betrifft: AW: Doppelklick mit Maus simulieren von: Thomas
Geschrieben am: 22.09.2014 22:24:02

Hallo Martin!
Die Call-Anweisung funktioniert.
Geht das Ganze auch mit SendMessage, dass man die Daten direkt in die Eingabefelder der Fremden Datenbank eingibt, ohne erst mit SendKey dahinzusteuern!


 

Beiträge aus den Excel-Beispielen zum Thema "Doppelklick mit Maus simulieren"