Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1780to1784
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

Ein Mousedown-Ereignis bei mehreren TB

Ein Mousedown-Ereignis bei mehreren TB
18.09.2020 11:22:55
Christian
Hallo Zusammen,
ich habe in einer UserForm 15 Textboxen, von Textbox1 bis Textbox15, und möchte bei jeder dieser Textboxen stets das identische Mousedown-Ereignis auslösen. Muss ich dafür 15 Codes unterbringen oder ist das irgendwie zusammenfasssbar.
Herzlichen Dank vorab für jede Hilfe.
Viele Grüße
Christian

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein Mousedown-Ereignis bei mehreren TB
18.09.2020 13:16:37
Daniel
Hi
für Checker gibt's wie von Neupumuk gezeigt die sog. Klassenprogrammierung.
Wer die nicht checkt (so wie ich), kann sich mit folgendem Workaround behelfen:
1. man schreibt den Ablauf, der im MouseDown passieren soll in ein eigenes Makro im Modul der Userform und verwendet dabei für die TextBox einen Übergabeparameter vom Typ "Control" und ggf noch X und Y als Single, bei Bedarf auch den Button
2. dann erstellt man für jede TextBox das MouseDown-Event, in diesem reicht jetzt aber eine Zeile aus, in welcher man nur das entsprechende Makro aufruft und die Übergabeparamter angibt:
Beispiel
Private Sub TextboxMouseDown(tb as Control, x as single, y as single)
Msgbox tb.Name & " X: " & x & " - Y: " & y
end Sub
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
Call TextboxMouseDown(Textbox1, X, Y)
End Sub
Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
Call TextboxMouseDown(Textbox2, X, Y)
End Sub
usw
sind zwar immer noch viele Makros, aber die meisten bestehen ja nur aus einer Zeile und können leicht mit CopyPaste vervielfacht werden.
Gruß Daniel
Anzeige
AW: Ein Mousedown-Ereignis bei mehreren TB
18.09.2020 13:59:44
Christian
Hallo Daniel,
ich verstehe das mit dem Klassemodul auch leider nicht und würde daher die sicher sehr gute Lösung nicht im Blindflug übernehmen wollen. Ich habe Deinen Vorschlag umgesetzt, klappt ganz wunderbar.
Vielen Dank, auch an Neupumuk, und viele Grüße
Christian
AW: Ein Mousedown-Ereignis bei mehreren TB
18.09.2020 14:41:01
Nepumuk
Hallo Christian,
was gibt es da nicht zu verstehen?
Das Klassenmodul "clsTextBox" ist "nur" eine Vorlage.
Mit "Set objTextBoxClass = New clsTextBox" erzeugst du ein virtuelles Objekt des Klassenmoduls im Arbeitsspeicher.
Mit "Set objTextBoxClass.TextBox = Controls("TextBox" & CStr(lngIndex))" übergibst du das TextBox-Objekt an die Klasse bzw. an die Eventvariable "mobjTextBox".
In dem virtuellen Objekt werden dann die Events des Objektes "mobjTextBox" abgefangen.
Keine Zauberei, nur VBA-Standard.
Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige