Microsoft Excel

Herbers Excel/VBA-Archiv

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

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