Anzeige
Archiv - Navigation
628to632
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
628to632
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listbox-Items per MouseMove hervorheben.

Listbox-Items per MouseMove hervorheben.
25.06.2005 21:26:52
Chris
Hallo Gemeinde.
Ich habe endlich einen Code gefunden, mit dem sich die Items einer Listbox
hervorheben, wenn man mit der Maus drüberfährt.
Allerdings bekomm ich da jetzt eine Fehlermeldung und beim debuggen wird
das "vbPixels" markiert.

Private Sub List1_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Dim P&, LX&, LY&, Param&
LX = List1.Parent.ScaleX(X, List1.Parent.ScaleMode, vbPixels)
LY = List1.Parent.ScaleY(Y, List1.Parent.ScaleMode, vbPixels)
Param = CLng(LX) + &H10000 * CLng(LY)
P = SendMessage(List1.hwnd, LB_ITEMFROMPOINT, 0, ByVal Param)
If P < List1.ListCount Then List1.ListIndex = P
End Sub

Könnt ihr mir sagen wie dieser Code richtig aussehen müßte?
Sommerliche Grüße
Chris

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox-Items per MouseMove hervorheben.
25.06.2005 21:38:14
Jan
Hi,
das ist kein VBA-Code! In userforms gibts kein ScaleMode, das ist VB.
mfg Jan
AW: Listbox-Items per MouseMove hervorheben.
25.06.2005 21:53:27
Chris
Hallo Jan.
Das hab ich inzwischen auch schon bemerkt.
Trotzdem würde ich gerne wissen wie man sowas mit VBA hinbekommt.
Also die Items einer ListBox sollen hervorgehoben werden wenn man mit der Maus drüberfährt.
Hat da vielleicht irgendwer ne passende Lösung?
solong...
Chris
AW: Listbox-Items per MouseMove hervorheben.
25.06.2005 22:35:24
Jan
Hi,
hast du schon mal in der Recherche gesucht? Da gabs mal eine Lösung von K.Rola.
mfg Jan
AW: Listbox-Items per MouseMove hervorheben.
25.06.2005 23:26:38
Chris
Ich such schon seit Stunden... :o(
Chris
AW: Listbox-Items per MouseMove hervorheben.
26.06.2005 10:59:51
Christoph
Hi Chris,
wenn du dir das Drücken der linken Maustaste unbedingt sparen willst, dann hier mal ein Ansatz ohne API (ausgelegt für Standard-Schrift Tahoma / Größe 8)
Gruß
Christoph
Option Explicit
Private Sub ListBox1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
On Error Resume Next
ListBox1.ListIndex = Round((Y - 4) / 10) + ListBox1.TopIndex
End Sub

Anzeige
AW: Listbox-Items per MouseMove hervorheben.
26.06.2005 12:29:10
Chris
Wieso das drücken der linken Maustatse sparen?
Klicken muß ich ja sowieso. Ich möcht nur sichergehen, das auch das richtige geclickt wird.
Vielleicht zur Erklärung:
Ich hab mir eine ListBox zum DropDown-Menü umgebaut.
Also ein CommandButton in Tabelle1 startet das UserForm "DropDownForm1".
In diesem Userform befindet sich nur eine Listbox mit 15 Einträgen und es startet direkt
unterhalb vom CommandButton.
Mit dem sehr einfachen Code

Private Sub EuroBox_Click()
Sheets(EuroBox.Text).Select
Unload Me
End Sub
kann man jetzt wie bei einem "normalen" DropDown-Menü in das Sheet seiner Wahl wechseln,
ohne das die Registerkarten eingeblendet sein müssen.
Läuft prima und sieht auch gut aus. Einziges Problem:
Einigen Anwendern ist aufgefallen, das es öfters mal zu fehl-clickern kommt, weil die 15 Einträge
wirklich ein bisschen eng untereinander stehen und der Focus (ein gepunkteter Rahmen)
einfach immer auf dem ersten Eintrag liegt. (siehe Bild)
Besser wäre wenn der Eintrag unter der Maus ein Highlight bekommen würde.
Ich hab schon verschiedene Ansätze gefunden, aber alle liefern bisher Fehlermeldungen.
Schriftart ist Verdana, Schriftgrad ist 9
...und so siehts aus:
Userbild
Für kreative Antworten wäre ich wie immer sehr dankbar, denn da bastel ich jetzt nämlich
schon ziemlich lang dran rum ohne wirklich weiter zu kommen. :o(
Sonntags-Grüße
Chris
Anzeige
AW: Listbox-Items per MouseMove hervorheben.
26.06.2005 13:08:10
Christoph
Hi Chris,
weise deinen Code dem DblClick-Ereignis zu.
Dann hast du beim einfachen Click auch das normale Verhalten und kannst auf das MouseMove verzichten.
Gruß
Christoph
Option Explicit
Private Sub EuroBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Sheets(EuroBox.Text).Select
Unload Me
End Sub

AW: Listbox-Items per MouseMove hervorheben.
26.06.2005 13:16:33
Chris
Das wäre die Notlösung, wenns überhaupt nicht anders geht. Hab ich auch schon
ausprobiert. So wirkts im Alltag dann aber schon ein wenig "altmodisch". ;o)
Außerdem würde ich nach der langen Sucherei jetzt echt gerne wissen wie sowas geht.
Alle Ansätze die ich hab weißen eindeutig darauf hin das es machbar ist.
Wieder Sonntags-Grüße
Chris
Anzeige
AW: Listbox-Items per MouseMove hervorheben.
26.06.2005 13:23:21
Christoph
Hi Chris,
natürlich ist es machbar. Die Kombination von Click und MouseMove läuft genauso.
(getestet unter XP) Insbesondere, da du in der ListBox nicht scrollen willst.
lade doch mal eine abgespeckte Version (Tabellen ohne Daten, etc) auf den Server. Dann schau ich mir das mal an.
Gruß
Christoph
Korrektur
26.06.2005 14:11:13
Christoph
Hi Chris
ich habe eben noch mal in meinem Dateien gesucht.
Es ist nicht die Kombination von "Click" und "MouseMove" sondern die Kombination von "MouseUp" und "MouseMove", die hier das gewünschte Verhalten zeigt.
sorry
Gruß
Christoph
AW: Korrektur
26.06.2005 18:16:00
Chris
Hallo Christoph.
Versteh zwar grad mal nicht so richtig was Du meinst, aber naja. :o)
Ich hab die Funktion zum testen als stand-alone in eine Arbeitsmappe gepackt.
Im Original befindet sich dann natürlich auf jeder Länderseite ein Button der wieder
zurück zur Übersicht führt und die Blatt-Registerkarten sind ausgeblendet.
Cool wär übrigens auch noch wenn der Auswahl-Button in der Übersicht das EuroForm
nicht nur einblenden, sondern auch wieder ausblenden könnte. (?)
Und hier nun das File:
https://www.herber.de/bbs/user/24202.xls
Wieder schönen Sonntag...
Chris
Anzeige
et voila
26.06.2005 19:44:46
Christoph
Hi Chris,
die API's hab ich außer Acht gelassen und bin bei meinem Vorschlag geblieben.
(MouseMove und MouseUp)
wenn du den Button wieder zum Ausschalten benutzen willst, dann muß er sichtbar bleiben.
https://www.herber.de/bbs/user/24206.xls
Gruß
Christoph
Rückmeldung wäre nett
Hurrraaa!!!!!!!! :o)
26.06.2005 22:48:08
Chris
Hallo Christoph.
Gleich eingebaut, ausprobiert und Jubelschrei ausgestoßen. :o)
Vielen Dank für die Hilfe. Funktioniert prima.
Zwar bleibt das Highlight wenn man links, rechts oder unten aus dem Rahmen herausfährt,
aber an der Stelle wirds ziemlich kompliziert, das hab ich schon mitbekommen.
Daher bin ich mehr als zufrieden mit dieser Lösung. :o))
Nochmal Danke und ne schöne Woche...
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige