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

Objekt mitgeben

Objekt mitgeben
14.07.2016 11:21:29
Hendrik
Moin zusammen,
ich habe ein Userform mit sechs einzeiligen Textboxen. Schließe ich das Userform, werden die Werte in ein Tabellenblatt geschrieben.
In Ausnahmefällen möchte ich in die Textboxen mehr schreiben, als angezeigt wird. Hierfür würde ich gerne via Doppelklick auf die Textbox ein weiteres Userform anzeigen, welches lediglich eine, dafür aber eine deutlich größere mehrzeilige Textbox enthällt. Das diese den Inhalt der kleinen Box des anderen Userforms enthält, bekomme ich hin.
Aber: Klicke ich in der zweiten Textbox auf OK, soll der Text in die aufrufende Textbos zurückgegeben werden. Das ist abhängig davon, welche der Textboxen des ersten Userforms doppelt angeklickt wurde. Wie kann ich das bewerkstelligen (ohne alles 6x zu machen)?
Danke und Grüße
Hendrik

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objekt mitgeben
14.07.2016 13:16:58
Michael
Hi Hendrik,
es genügt, die Nr. einer Textbox mitzugeben; ich habe schnell eine UF mit drei TBen Nr. 1-3 und eine weitere mit einer großen (die dann TextBoxML wie multiline heißt) angelegt:
' Code in Userform1 *****
Option Explicit
Public tbnr As Long
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.TextBoxML.Value = TextBox1.Value
tbnr = 1
UserForm2.Show
Cancel = True
End Sub
Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.TextBoxML.Value = TextBox2.Value
tbnr = 2
UserForm2.Show
Cancel = True
End Sub
Private Sub TextBox3_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.TextBoxML.Value = TextBox3.Value
tbnr = 3
UserForm2.Show
Cancel = True
End Sub
' Code in Userform2 *****
Option Explicit
Private Sub CommandButton1_Click()
Dim tbLauf As Control
For Each tbLauf In UserForm1.Controls
If tbLauf.Name = "TextBox" & UserForm1.tbnr Then
tbLauf.Value = TextBoxML.Value
Exit For
End If
Next
UserForm2.Hide
End Sub
Schöne Grüße,
Michael

Anzeige
AW: Objekt mitgeben
14.07.2016 13:26:19
Oberschlumpf
Hi Michael,
aber genau die Programmierung jeden DblClick-Ereignisses wollte Hendrik doch vermeiden.
Oder hab - ich - das jetzt völlig falsch verstanden?
Ciao
Thorsten

AW: Objekt mitgeben
14.07.2016 14:16:14
Hendrik
Hallo,
vermeiden wollte ich zumindest erst einmal, dass ich für jede der sechs Textboxen ein eigenes erweiteretes Userform brauche. Das ist hier ja gegeben. Dass ich jeweils ein DblClick benötige, hatte ich bis ich Deine Lösung sah noch gedacht. :)
Aber vielen Dank, Michael!

um die Klassen wollte ich mich drücken...
14.07.2016 14:58:42
Michael
Hi,
insbesondere um Hendrik nicht zu überfordern.
Aber zugegeben: ich habe bislang auch nur immer wieder mal reingeschnüffelt...
Happy exceling & Grüße,
Michael

Anzeige
AW: Objekt mitgeben
14.07.2016 13:23:54
Oberschlumpf
Hi Hendrik,
hier, versuch mal:
https://www.herber.de/bbs/user/107008.xlsm
Du musst userform1 (UF1) im VBE starten. Ich hab den Start von UF1 jetzt nicht im Workbook.Open-Ereignis verankert.
Also, nachdem du UF1 gestartet hast, siehst du 3 txtboxes;multiline = false.
Wenn du nun in eine der drei txtboxes doppelt klickst, öffnet sich Userform2 (UF2).
UF2 enthält 1 txtbox;multiline = true; + 1 Button.
txtbox in UF2 erhält den Inhalt aus doppelt geklickter txtbox in UF1.
Nun vervollständige den Text in txtbox in UF2.
Nach Klick auf den Button in UF2 wird erst der verlängerte Text aus txtbox (UF2) in die doppelt geklickte txtbox(UF2) übertragen.
UF2 wird geschlossen.
Und all das ohne jedes einzelne Doppelklick-Ereignis aller txtboxes in UF1 programmieren zu müssen!
Trotzdem möglich ist das durch Klassenprogrammierung (an der ich noch ganz am Anfang stehe, da diese Bsp-Datei meine erste ist mit Klasesnprogrammierung :-) )
Den entscheidenden Code, den ich anpasste, hab ich hier gefunden:
https://www.herber.de/forum/archiv/1148to1152/1151734_VB_Klassenmodul_fuer_Textboxen.html
Konnte ich dir denn helfen?
Ciao
Thorsten

Anzeige
AW: Objekt mitgeben
14.07.2016 14:14:30
Hendrik
Moin Thorsten,
heißer Scheiß!
Das funktioniert gut, allerdings verstehe ich nicht warum. :)
Wie wird denn das eigentliche Doppelklick-Event abgefangen? Mit Klassen in VBA habe ich es nicht so.
Dein Beispiel ist aber dennoch super und hilft mir weiter. Danke!

AW: Objekt mitgeben
14.07.2016 14:22:23
Hendrik
Wenn ich das Userform durch die Schaltfläche schließe, wird der Text zurückgegeben, ich habe aber so lange eine Sanduhr-Maus, bis ich irgendwo klicke. Hast Du das auch?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige