Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
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

Mausgesten in Excel ??

Mausgesten in Excel ?
15.07.2022 18:20:59
Dieter
Hallo,
Gibt es eine Möglichkeit Mausgesten in Excel Tabellenblätter zu erstellen ?
ich meine, wenn ich z.B. mit der Maus über die Zeilen 2 bis 20 gehe, das
dann jeweils die Zeilen bis Spalte 10 farblich markiert werden und dann bei Klick
wird dann die Zelle angesprochen.
Hier mal eine Seite wie ich es meine !!!

https://www.schulferien.org/deutschland/ferien/nordrhein-westfalen/

Mal mit der Maus über die Seite Fahren und sehen was ich meine.
Geht sowas auch mit Excel ?
Gruß
Dieter

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mausgesten in Excel ?
15.07.2022 18:40:03
onur
Nein, es gibt kein Mouse-Event für Tabellenblätter.
AW: Mausgesten in Excel ?
16.07.2022 13:04:35
Dieter
hey onur,
Scheint wohl doch zu gehen, schau mal Beitrag und Tabelle von Nepumuk an.
Gruß Dieter
AW: Mausgesten in Excel ?
16.07.2022 13:14:59
onur
Natürlich geht es, wenn man den Aufwand mit den API-Funktionen nicht scheut. Du solltest sehr dankbar sein, dass Nepumuk dir hilft, denn SOLCHE Lösungen gibt es normalerweise nur gegen Bezahlung.
Anzeige
AW: Mausgesten in Excel ?
16.07.2022 13:24:54
Dieter
Hey onur,
Ok das wusste ich nicht. Von API-Funktionen hab ich nun mal gar keinen Plan.
Ich danke auch Nepumuk dafür. aber warum sollte man dafür bezahlen ?
Dann könnte man das auch hier im Bord erwähnen das solche Dinge nur unter Bezahlung laufen
ohne einfach zu sagen es geht nicht.
Aber egal jetzt, sage Dir auch danke für die Erläuterung.
Vielleicht kannst du mir ja bei dem Anderen Problem helfen ? sollte es gehen
L.G
Dieter
AW: Mausgesten in Excel ?
16.07.2022 13:49:30
onur
Mit Bezahlung meinte ich nur, dass man hier kostenlos Hilfe bei kleineren Problemen bekommen kann, bei grösseren Problemen bzw Komplettlösungen (wie in deinem Fall) helfen Auftragsprogrammierer, da das ja schon wesentlich mehr Aufwand ist, als ein kleiner Gefallen erfordern würde. Für MICH war das halt zu viel Aufwand aber für Nepumuk offensichtlich nicht.
Anzeige
AW: Mausgesten in Excel ?
19.07.2022 16:49:01
Dieter
Hey onur,
Danke für Deine aussage, nichts für ungut.
Bin ja auch froh das aus nur einer Frage ob es Möglich ist Mouse Gesten zu erzeugen in Excel
mir geholfen Wurde. Es war ja kein Problem in dem Sinne, sondern reiner Zufall das ich das gesehen
habe im Netz und mir dann dachte sollte sowas gehen in Excel ich es gut verwerten kann.
Also wie gesagt, trotzdem Danke für Deine Aussagen zu dem Thema.
Ich lasse mir auch gerne weiterhin von Dir helfen bei kleinen Dingen wie Du ja auch schon getan hast.
LG
Dieter
AW: Mausgesten in Excel ?
16.07.2022 13:02:12
Dieter
Hey Nepumuk,
Habe vielen Dank für Deinen Code. Hab nicht gedacht das es geht. Prima
Damit kann ich was anfangen.
Ich habe den Code ein wenig abgeändert mit Zeilen und Spalten wie ich brauche. Vielleicht ändere ich auch noch Farbe.
Hab nur noch Frage dazu, warum muss ein Timer dazu laufen ? Ohne geht nicht ?
Ansonsten Vielen Dank der Arbeit und Mühe
Gruß Dieter
AW: Mausgesten in Excel ?
16.07.2022 13:08:17
Nepumuk
Hallo Dieter,

Hab nur noch Frage dazu, warum muss ein Timer dazu laufen ? Ohne geht nicht ? 
1. Ja
2. Nein
Gruß
Nepumuk
AW: Mausgesten in Excel ?
16.07.2022 13:15:22
Dieter
Hallo Nepumuk,
Ok also Antwort muss Timer, und ohne Geht nicht. Alles klar.
Egal, hätte ja sein können.
Trotzdem vielen Dank deiner Mühe
kann es gut verwerten.
Hast voll was drauf, schon öfters gelesen und selbst erfahren.
Danke. Und schönen Tag noch
L.G.
Dieter
Anzeige
AW: Mausgesten in Excel ?
16.07.2022 19:22:12
volti
Hallo Dieter,
zur Ergänzung....
Es gäbe noch die Möglichkeit anstatt eines Timers das Mousehookingverfahren einzusetzen. Hierbei fängt man die Mausmeldungen ab und macht dann was damit.
Obwohl manche das in Excel (weil Excel zu langsam) etwas unsicher finden. Probiere es einfach mal aus.
MousemoveOverCells.xlsm
Habe das der Einfachheit halber mal in Nepumuks' code eingebaut . Kannst es Dir ja auch einmal anschauen.
viele Grüße
Karl-Heinz
AW: Mausgesten in Excel ?
19.07.2022 16:39:16
Dieter
Hallo Karl-Heinz,
Danke Für Deine Erläuterung, habe mir Deine Datei mal angesehen.
Der Unterschied zu Nepumuk scheint wohl der zu sein, dass oben im Menü-band von Excel
das ( Aktive ) nicht durchgehend blinkt bei Dir sondern nur bei Mouse-Bewegung.
Liege ich da richtig ?
Ansonsten sehe ich nichts außer das Dein Code auch prima Läut bei mir obwohl Du sagst
es wäre langsam oder unsicher.
Vielen Dank für auch Deine Arbeit.
Gruß
Dieter
Anzeige
AW: Mausgesten in Excel ?
19.07.2022 16:59:21
volti
Hallo Dieter,
da liegst Du richtig.
Bei der Timer-Methode wird dauerhaft (bis zur Deaktivierung des Timers) und auch bei nicht bewegter Maus die angegebene Prozedur aufgerufen, um das Mausereignis abzufragen und zu bearbeiten.
Bei größer eingestellten Intervalleinstellungen wird das langsamer und könnte ruckeln, bei kürzer eingestellten Intervallen wird das System dafür mehr belastet.
Bei der Hookingmethode erfolgt der Prozeduraufruf nur bei einer Mausbewegung bzw. Mausaktivtät. Deshalb ist diese Methode die schnellste und damit das Mittel der Wahl.
Bei dieser Methode wird jedoch in die Windows-Messageschleife des Betriebssystems (außerhalb von Excel) eingegriffen, und das finden manche Leute im VBA-Bereich etwas heikel.
Aber wenn es bei Dir fehlerfrei läuft, ist es ja gut.
Viele Grüße
Karl-Heinz
Anzeige
AW: Mausgesten in Excel ?
19.07.2022 17:34:29
Dieter
Hallo Karl-Heinz,
Danke der Erläuterung, Heißt das im Umkehrschluss das Deine Methode nicht sicher ist mit Angriffen von außen ?
Zitat ! - des Betriebssystems (außerhalb von Excel) eingegriffen, und das finden manche Leute im VBA-Bereich etwas heikel.
Oder wie darf ich das verstehen ?
Weil Sicherheit möchte ich schon gewährleisten bei Excel VBA. Sollte die nicht gegeben sein verzichte ich auf gute Codes.
Was aber nicht auch heißen soll, das ich Deine Arbeit dazu schmälern möchte, sondern auch dankbar bin für
Deine Offenheit und Hintergründe.
Gruß
Dieter
Anzeige
AW: Mausgesten in Excel ?
19.07.2022 17:47:12
volti
Hallo Dieter,
nein, das hat mit Sicherheit im Sinne von Angriffen von außen nichts zu tun. Das ist alles gut.
Bezog sich nur darauf, dass VBA zu langsam sein könnte und es zu Problemen in der Abarbeitung kommen könnte.
Vielleicht habe ich ja jetzt einfach die Pferde scheu gemacht. :-(
Bei der Timer-Methode wird übrigens ja auch die API verwendet..
Gruß
Karl-Heinz
AW: Mausgesten in Excel ?
20.07.2022 16:49:11
Dieter
Hey Karl-Heinz,
Ok, habe ich dann bestimmt etwas falsch verstanden mit Deiner Ausführung.
Das Problem punkto Langsamkeit in VBA habe ich nicht, es läuft alles reibungslos ohne ruckeln oder sonst was.
Ich möchte jetzt nicht unverschämt sein, bei so einer tollen Hilfe und dem schreiben des Codes von Dir und Nepumuk,
Aber könnte man das auch so hinbekommen, das die Mouse-Gesten nur für den Bereich wirken ?
Heißt sollte ich weiter neben den Zellen arbeiten das Die Gesten nicht greifen nicht sichtbar sind?
Wenn ich nach unten gehe hab ich die Gesten ja auch nicht.
Hoffe konnte mich verständlich ausdrücken.
Wie gesagt ist nur eine Frage noch dazu ob machbar ist.
Sollte es nicht gehen kann ich auch so damit prima arbeiten.
LG.
Dieter
Anzeige
AW: Mausgesten in Excel ?
20.07.2022 23:58:10
volti
Hallo Dieter,
mit u.a. Code werden die Mausgesten nur für den definierten Bereich (als Konstante definiert) aktiv.
Gleichzeitig habe ich nur das gewünschte Tabellenblatt für die Mausgesten aktiviert. Damit sind andere Tabellenblätter vom Mousehooking ausgeschlossen.
Probiere es halt mal aus.
Code:


' In das Codemodul Option Explicit Option Private Module Private Declare PtrSafe Function SetWindowsHookExA Lib "user32" ( _ ByVal idHook As Long, ByVal lpfn As LongPtr, _ ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr Private Declare PtrSafe Function CallNextHookEx Lib "user32" ( _ ByVal hHook As LongPtr, ByVal nCode As Long, _ ByVal wParam As LongPtr, lParam As Any) As LongPtr Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" ( _ ByVal hHook As LongPtr) 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 Dim hHook As LongPtr Const WH_MOUSE_LL As Long = 14 Const csActiveRange As String = "A1:F10" Const csActiveRow As String = "A#:F#" Private lLastRow As Long Public Sub StartMaus() If hHook = 0 Then ' Baut den Mousehook auf hHook = SetWindowsHookExA(WH_MOUSE_LL, AddressOf MouseProc, _ Application.HinstancePtr, 0) End If End Sub Public Sub StopMaus() UnhookWindowsHookEx hHook: hHook = 0 ' Beendet den Mousehook End Sub Private Function MouseProc(ByVal nCode As Long, ByVal wParam As LongPtr, _ lParam As LongPtr) As LongPtr Dim udtPoint As POINTAPI Dim objUnknown As Object On Error GoTo err_exit If nCode = &H0 And wParam = &H200 Then '&H0=HC_ACTION, &H200=WM_MOUSEMOVE ' Aktionsabarbeitung nur bei Mausbewegungen Call GetCursorPos(udtPoint) ' Ermittle Mausposition Set objUnknown = ActiveWindow.RangeFromPoint(udtPoint.X, udtPoint.Y) If Not objUnknown Is Nothing Then If TypeOf objUnknown Is Range Then If Intersect(Range(csActiveRange), objUnknown) Is Nothing Then If lLastRow <> 0 Then Range(csActiveRange).Interior.Pattern = xlPatternNone lLastRow = 0 End If Else If lLastRow <> 0 Then If lLastRow <> objUnknown.Row Then Range(Replace(csActiveRow, "#", lLastRow)).Interior.Pattern = xlPatternNone End If End If lLastRow = objUnknown.Row ' Letzte Zeile merken Range(Replace(csActiveRow, "#", lLastRow)).Interior.Color = RGB(255, 255, 153) End If End If End If Exit Function End If err_exit: MouseProc = CallNextHookEx(0, nCode, wParam, ByVal lParam) ' Mousemessages an Excel weitergeben End Function ' In das DieseArbeitsmappe-Modul Private Sub Workbook_SheetActivate(ByVal Sh As Object) If Sh.Name = "Tabelle1" Then Call StartMaus ' Mausgesten starten End Sub Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) If Sh.Name = "Tabelle1" Then Call StopMaus ' Mausgesten starten End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Mausgesten in Excel ?
21.07.2022 17:01:27
Dieter
Hallo Karl-Heinz,
Vorweg schon mal vielen lieben Dank für Deine Mühe und Arbeit.
Habe versucht Deinen Code in eine neue Mappe zu Stellen.
Leider bekomme ich das nicht hin auch nach mehrmaligen Versuchen.
Könntest du vielleicht mal darüber schauen wo ich den Fehler habe ?
https://www.herber.de/bbs/user/154293.xlsm
Denke mal ist nichts großes für Dich.
Danke
Lg
Dieter
AW: Mausgesten in Excel ?
19.07.2022 18:02:16
Daniel
Hi
es gibt noch einen anderen Weg:
1. lege einen ActiveX-Commandbutton über den Zellbereich, für den du Mausgesten haben willst
2. formatiere den Hintergrund des Buttons transparent
3. jetzt kannst du das MouseMove-Event des Buttons nutzen um was zu programmieren, der Zellinhalt bleibt sichtbar.
allerdings hast du da mit zwei Problemen zu kämpfen:
MouseMove ist ziemlich träge, dh wenn du die Maus schneller bewegst, hinkt das ganze hinterher
beim Anklicken verliert der Button die Transparenz und verdeckt somit den Inhalt, solange bis man die Maus vom Button wegbewegt.
Da müsste man ich noch was einfallen lassen (z.B . den Button kurz ausblenden)
aber so kann man Mausgesten für Excel erstellen, ohne dass man API nutzen muss.
Gruß Daniel
AW: Mausgesten in Excel ?
20.07.2022 16:34:03
Dieter
Hey Daniel,
Danke der Ausführung, aber das wird mir jetzt echt zu kompliziert.
Dafür reicht mein Wissen überhaupt nicht aus um sowas zu bewerkstelligen.
Ich denke ich bin mir dem von Nepumk und Karl-Heinz seinen Codes voll zu frieden.
Aber trotzdem vielen Dank für Deine Erläuterung.
Gruß
Dieter
AW: Mausgesten in Excel ?
20.07.2022 16:35:15
Daniel
Hi
hast du das verstanden, was Nepumuk dir geschrieben hat und könntest du es selbstständig programmieren?
Gruß Daniel
AW: Mausgesten in Excel ?
21.07.2022 17:18:35
Dieter
Hey Daniel,
Ich hatte doch gesagt das dafür mein Wissen in VBA nicht ausreicht und zu kompliziert ist
was Nepumuk mir da geschrieben und noch vorgeschlagen hat.
Also auf Deine Frage könntest du es selbstständig programmieren?
ein klares NEIN
Außerdem geht doch der Code von Nepumuk einwandfrei warum sollte ich das jetzt ändern in einem Button.
Dann habe ich noch den Code von Karl-Heinz der auch prima läuft.
Ich arbeite und teste grade mit beiden Codes ( vielen Dank dafür an beide nochmals ) in unterschiedlichen Mappen
Alles prima soweit.
Lg.
Dieter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige