Positionierung der Maus
Betrifft: Positionierung der Maus
von: yogi
Geschrieben am: 30.08.2004 13:24:50
Hallo
Mein Problem: nach einem Doppelklick auf eine ungesperrte Zelle in einem geschützten Tabellenblatt soll die nächste ungesperrte Zelle zur aktiven Zelle werden und gleichzeitig soll auch die Mausposition auf diese Zelle gesetzt werden. Die Auswahl der nächsten Zelle erfolgt mit
ActiveCell.Next.Select
wie kann ich nun das Mäuschen dazu bewegen, sich ebenfalls zu bewegen?
Gruss
yogi
Betrifft: AW: Positionierung der Maus
von: Bert
Geschrieben am: 30.08.2004 14:06:22
In Tabellen gibt es keine Maus- Ereignisse.
Bert
Betrifft: AW: Positionierung der Maus
von: yogi
Geschrieben am: 30.08.2004 14:48:05
Vielleicht habe ich mein Problem nicht genau genug geschildert, hier also ein zweiter Versuch.
Setze ich via "Systemsteuerung" - "Eigenschaft von Maus" - "Bewegung" - das Häkchen bei "Zu Standardschaltfläche springen" wird die Maus vom System beim Erscheinen einer neuen Standardschaltfläche auf diese Stelle versetzt. Genau diese Funktion möchte ich per Makro realisieren, mit dem Unterschied, dass das Ziel jetzt eine Zelle und keine Schaltfläche ist.
Gruss
yogi
Betrifft: AW: Positionierung der Maus
von: Bert
Geschrieben am: 30.08.2004 14:52:47
Und das geht halt nicht. Du kannst zwar über API- Funktion die Mausposition auslesen und
auch setzen, nur harmonieren die Werte nicht mit den Zellpositionen.
Bert
Betrifft: AW: Positionierung der Maus
von: ypsilon
Geschrieben am: 30.08.2004 15:14:51
hi,
vielleicht reicht dir ja das schon als denkanstoss
Option Explicit
Private Declare
Function GetCursorPos Lib "user32" (cPoint As POINTAPI) As Long
Private Declare
Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Sub Where_Mouse_is()
Dim tPoint As POINTAPI
Dim x As Long
x = GetCursorPos(tPoint)
MsgBox "Cursor ist an Position:" & vbLf & tPoint.x & "," & tPoint.y
End Sub
Sub Move_Cursor_to()
Dim x As Long, y As Long, n As Long
x = 50
y = 50
n = SetCursorPos(x, y)
End Sub
Sub Move_Cursor_on_Screen()
Dim y As Long, n As Long, i As Long, t As Double
y = 1
For i = 1 To 30
n = SetCursorPos(i * i, y)
t = 1 'Sekunden
Application.Wait (Now + TimeValue("00:00:0" & t))
y = y + i * 2
Next i
End Sub
Sub zellen_position()
MsgBox [d24].Left & " " & [d24].Top
End Sub
cu Micha
Betrifft: AW: Positionierung der Maus
von: yogi
Geschrieben am: 30.08.2004 15:54:01
fast perfekt!
Cells(x, y).Top/Cells(x, y).Left gibt mir die Adresse der Zelle im EXCEL-Fenster an. Was ich nun noch brauche ist die Angabe, welche Zelle ganz oben links im EXCEL-Fenster sichtbar ist und welches ihre absolute Position auf dem Bildschirm ist. Von da ab ist es nur noch Rechnerei.
Hättest du da etwas?
Gruss
yogi
Betrifft: AW: Positionierung der Maus
von: ypsilon
Geschrieben am: 30.08.2004 16:07:39
hi,
viel spass beim rechnen ;-)
Sub WhatCell()
MsgBox Cells(ActiveWindow.ScrollRow, _
ActiveWindow.ScrollColumn).Address
End Sub
cu Micha
Betrifft: AW: Positionierung der Maus
von: yogi
Geschrieben am: 30.08.2004 20:44:49
naja, ich sagte "fast perfekt" und, Bill Gates sei Dank, die Positionen, die die verschiedenen Methoden zurückgeben, stimmen scheinbar nicht überein. (Siehe Datei
https://www.herber.de/bbs/user/10316.xls). Ich werde wohl noch etwas weiter experimentieren müssen
trotzdem Dank
yogi