Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Was mache ich Falsch :-(

Was mache ich Falsch :-(
Nibio
Hallo Excel-Freunde,
diese Script führt ein Click aus (wie ein Makro) auf position 420, 759. Es funktioniert auch.
Davor möchte ich aber in zelle A1 eine "1" eintragen. Also habe ich
"Range("A1").Select
ActiveCell.FormulaR1C1 = "1"" eingefügt zwischen drin. Es läuf aber dann nicht mehr,
was mache ich Falsch?
Sub MausPosition_T1()
'original   script
SetCursorPos 420, 759
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
End Sub

Sub MausPosition_T1()
'von mir angepasst
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
SetCursorPos 420, 759
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
End Sub

Gruß
Nibio

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Was mache ich Falsch :-(
27.08.2011 22:19:53
Nepumuk
Hallo,
so:
Sub MausPosition_T1()
    
    'von mir angepasst
    
    Range("A1").Value = 1
    
    SetCursorPos 420, 759
    mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
    mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Was mache ich Falsch :-(
27.08.2011 22:48:07
Nibio
WOW
Danke Nepumuk.
Das hat mir gerade sehr viele Stunden gespart.
Gruß
Nibio
AW: Was mache ich Falsch :-(
27.08.2011 23:03:06
Nibio
WOW
Danke Nepumuk.
Das hat mir gerade sehr viele Stunden gespart.
Ops, es geht doch nicht, bist du sicher das es geht?
Er schreibt nicht in A1 die "1".
Gruß
Nibio
AW: Was mache ich Falsch :-(
27.08.2011 23:26:29
Nepumuk
Hallo,
klar geht das. Teste es einfach nur mit der Zeile: Range("A1").Value = 1
Gruß
Nepumuk
AW: Was mache ich Falsch :-(
27.08.2011 23:32:13
Nibio
Hallo,
ja, einfach nur mit eine Zeile geht, aber im Script angepasst geht nicht.
Gruß
Nibio
AW: Was mache ich Falsch :-(
27.08.2011 23:43:04
Nepumuk
Hallo,
also bei mir macht es genau was es soll. In A1 wir ein 1 eingetragen und der Cursor landet ungefähr in Zelle E37. Was willst du denn damit überhaupt erreichen?
Gruß
Nepumuk
Anzeige
AW: Was mache ich Falsch :-(
27.08.2011 23:50:49
Nibio
Hallo,
der Cursor geht bei mir raus von Excel, in eine andere Anwendung und fürht einige klicks aus, danach kehrt wieder in Excel. Ich habe das Fenster praktisch verkleinert (1/4 fom Monitor).
Gruß
Nubio
AW: Was mache ich Falsch :-(
28.08.2011 09:39:23
Nepumuk
Hallo,
den Klick auf einen fremden Button würde ich aber nicht so machen. Hier mal ein Beispiel wie es besser geht:
Öffne Word, füge ein Modul ein und folgenden Code:
Option Explicit

Public Sub test()
    MsgBox "Hallo"
End Sub

Starte die Prozedur mit F5.
Öffne Excel, füge ein Modul ein und folgenden Code:
Option Explicit

Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
    ByVal hWnd1 As Long, _
    ByVal hWnd2 As Long, _
    ByVal lpsz1 As String, _
    ByVal lpsz2 As String) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long

Public Const BM_CLICK = &HF5

Public Sub Button_Click()
    
    Dim lngButton As Long, lngParent As Long
    
    lngParent = FindWindow(vbNullString, "Microsoft Word")
    lngButton = FindWindowEx(lngParent, 0&, "Button", "OK")
    
    If lngButton <> 0 Then
        Call SendMessage(lngButton, BM_CLICK, 0&, 0&)
        Call SendMessage(lngButton, BM_CLICK, 0&, 0&)
    Else
        MsgBox "Window or Button not found"
    End If
End Sub

Starte die Prozedur mit F5.
Wie du siehst, wird der Button der Msgbox gedrückt ohne das du den Mauscursor bewegen musst.
Mit FindWindow suchst du das Fenster mit dem entsprechenden Text ("Microsoft Word") in der Caption. Mit FindWindowEx den Button mit dem entsprechenden Text ("OK") in der Caption. Mit SendMessage schickst du eine Nachricht an den Button das er grdückt wurde. Ich hab das im Beispiel zweimal machen müssen, da der Button beim ersten mal noch nicht den Fokus hatte. Kann sein das es bei dir mit einem "Klick" geht. Das kannst nur du testen, denn ich habe ja dein "andere Anwendung" nicht.
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige