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

VBA - clsLabel_MouseMove Koordinaten machen was sie wollen

VBA - clsLabel_MouseMove Koordinaten machen was sie wollen
13.02.2024 04:20:31
Chris135
Hallo zusammen,

Ich möchte einen Schichtplan als UserForm erstellen und dafür dynamische Arbeitsplätze mit verschiebbaren Schichten (Label) anlagen. Da ich nicht weiß wie viele Arbeitsplätze pro Abteilung vorhanden sind, arbeite ich mit einer eigenen Klasse clsSubLabel.
Die Schichten sollen verschiebbar sein, sodass ich diese Austauschen kann.

Wenn ich eines dieser Label verschieben möchte, fängt dieses an zu laggen. Beim Debug sehe ich, dass meine Koordinaten x und y beim MouseMove-Event nicht linear mit der Maus mitlaufen und teilweise Springen. weshalb dieses "laggen" entsteht.

Das Problem muss meiner Meinung nach also irgendwo in der clsSubLabel_MouseMove liegen.

Hab ihr eine Ahnung wie das sein kann?
Wenn ich ne Userform_Mouse-Event nehme, funktionieren die Koordinaten einwandfrei. :(

hier die Beispieldatei:
https://www.herber.de/bbs/user/167011.xlsm

Vielen Dank im Voraus!

MfG Chris

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - clsLabel_MouseMove Koordinaten machen was sie wollen
13.02.2024 11:06:15
volti
Hallo Chris,

in meinem Date/Weekpicker habe ich den Caption der Userform ausgeblendet und verschiebe die Userform durch MoveLinksclick mit u.a. Code.

Vielleicht hilft es ja bei Dir auch. Ein Test bei mir sieht auf jeden Fall gut aus. :-)

PS: Einen Abgleich oder mögliche Verbesserungen Deines übrigen Codes habe ich nicht recherchiert.

Code:


Dim Ptx As Single, Pty As Single Sub subLabel_MouseMove(ByVal iButton As Integer, ByVal Shift As Integer, _ ByVal x As Single, ByVal y As Single) ' Verschieben der Userform bzw. Labels mit der Maus (Linksclick Move) If iButton <> 1 Then Ptx = 0: Pty = 0: Exit Sub If (Ptx > 0 And Ptx <> x) Then subLabel.Left = subLabel.Left + (x - Ptx) If (Pty > 0 And Pty <> y) Then subLabel.Top = subLabel.Top + (y - Pty) DoEvents If Ptx = 0 Then Ptx = x If Pty = 0 Then Pty = y End Sub

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige