Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

"Rückgabewert" beim schließen eines Userforms

Betrifft: "Rückgabewert" beim schließen eines Userforms von: Hendrik
Geschrieben am: 28.07.2014 11:46:47

Hallo zusammen,
ich habe in Userform A zehn Textboxen. Klicke ich doppelt auf eine Textbox öffnet sich Userform B, auf dem ich einen Listbox-Eintrag auswählen und auf "übernehmen" drücken kann.
Wie kann ich nun erkennen, auf welche Textbox auf A doppelt geklickt wurde und wo der Wert hin zurückgegeben werden soll? Wie realisiert Ihr so etwas?

Danke und Grüße
Hendrik

  

Betrifft: AW: "Rückgabewert" beim schließen eines Userforms von: Nepumuk
Geschrieben am: 28.07.2014 11:53:58

Hallo,

definiere im Userform eine TextBox-Eigenschaft welcher du die angeklickte TextBox übergibst. Dann kannst du den Wert direkt in die Prozedur deines Commandbuttons an die TextBox übergeben.

Gruß
Nepumuk


  

Betrifft: AW: "Rückgabewert" beim schließen eines Userforms von: Hendrik
Geschrieben am: 28.07.2014 12:02:02

Das verstehe ich nicht.
Hier mal mein bsiheriger Code:

Code von Userform A:

Private Sub txtWerteVergleich_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Call auswahlSpalten(txtServer, txtWerteDB, txtWerteTab)
End Sub
Code eines Moduls:
Sub auswahlSpalten(strServer As String, strDb As String, strTab As String)
glStrServer = strServer
glStrDb = strDb
glStrTab = strTab

ufB.Show
End Sub Code von Userform B:
Private Sub cbEinfuegen_Click()
    ufA.txtWerteVergleich.caption = listbox.value
    
    Me.Hide
    Unload Me
End Sub



  

Betrifft: AW: Nimm anstelle der Textboxen Comboboxen von: Daniel
Geschrieben am: 28.07.2014 12:08:22

Im Prinzip programmierst du hier das Verhalten einer Combobox nach, also kannst du auch gleich diese verwenden und benötigts keine zweite Userform.

Ansonsten mache ich die Wertübergabe zwischen zwei Userforms so, dass ich für die Daten, die von beiden Userforms verwendet werden sollen, eine Projektweit gültige Variable erstelle.
Hierzu wird die Variable als PUBLIC in einem allgemeinen Modul direkt unter Option Explicit deklariert

sieht in deinm Fall etwa so aus:
1. Allgemeines Modul1
Option Explicit
Dim TB as string


2. im Doppelkllick-Event der Textbox1:
TB = "Textbox1"

3. im Klick-Event des Übernehmenbuttons:
Userform1.Controls(TB) = Listbox1.Text

aber wie gesagt, in diesem Fall ist es einfacher, anstelle der Textboxen Comboboxen zu verwenden.
Dort kannst du auch entweder Freitext eingeben oder einen Wert aus der Liste auswählen.

Gurß Daniel


  

Betrifft: AW: Nimm anstelle der Textboxen Comboboxen von: Hendrik
Geschrieben am: 28.07.2014 12:19:39

Hallo Daniel,

da die Listbox des zweiten Userforms noch andere Sachen macht und aus einer Abfrage gefüllt wird, klappt eine Combobox nicht. Aber die andere Varainte ist prima.
.Controls hatte ich nicht auf dem Schirm. Danke.


 

Beiträge aus den Excel-Beispielen zum Thema ""Rückgabewert" beim schließen eines Userforms"