Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert an andere Userform übergeben

Forumthread: Wert an andere Userform übergeben

Wert an andere Userform übergeben
20.08.2018 18:38:23
Stephan
Guten Abend,
ich bastel gerade ein bisschen rum und versuche einen Wert der in UserForm1 in der TextBox_Test steht durch einen Klick auf "Weiter" an eine UserForm2 in die TextBox_Test2 zu übergeben, allerdings kommen bei mir immer nur Fehler. Ich habe gelesen, dass man sowas über Klassen machen sollte, allerdings habe ich da keine Ahnung von. Könnte mir da jemand weiterhelfen, wie ich das hinbekommen kann?
Liebe Grüße,
Steph
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert an andere Userform übergeben
20.08.2018 18:39:48
Hajo_Zi
userform2.textbox_test2=TEXTBOX_TEST

AW: Wert an andere Userform übergeben
20.08.2018 18:43:25
Stephan
Hallo Hajo,
das habe ich tatsächlich schon versucht, allerdings funktioniert das bei mir nicht. Die TextBox bleibt trotzdem leer.
AW: Wert an andere Userform übergeben
20.08.2018 18:48:20
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Gruß Hajo
Anzeige
AW: Wert an andere Userform übergeben
20.08.2018 18:51:01
Werner
Hallo Stephan,
und wo hast du den Code drin? Der gehört ins Userform_Initialize() oder ins Userform_Activate() Ereignis deiner Userform2
Private Sub UserForm_Activate()
UserForm2.TextBox1 = UserForm1.TextBox1
End Sub
Private Sub UserForm_Initialize()
UserForm2.TextBox1 = UserForm1.TextBox1
End Sub
Gruß Werner
Anzeige
AW: Wert an andere Userform übergeben
20.08.2018 18:59:42
Stephan
Ich habe gerade nochmal eine neue Tabelle erstellt und es dort ausprobiert, da funktioniert der Code einwandfrei. Bei meiner jedoch überhaupt nicht :D Ich darf die Tabelle leider aus datenschutztechnischen Gründen nicht hochladen, da dort viele personenbezogene Daten gespeichert sind, habt ihr denn vielleicht eine Idee wieso das nicht klappen könnte?
Anzeige
ohne Datei nicht....
20.08.2018 19:01:33
Werner
Hallo Stephan,
...kein Mensch braucht doch deine persönlichen Daten. Schmeiß die raus und setzt ein paar Dummydaten rein und gut ist.
Gruß Werner
AW: ohne Datei nicht....
20.08.2018 19:15:29
Stephan
Hallo Werner, die Datei findest du nun hier: https://www.herber.de/bbs/user/123447.xlsm
Drücke auf "Los geht´s", das was dann bei "Anlagen Typ" Ausgewählt wird soll in der UserForm 2 in der TextBox oben rechts übernommen werden. Vielen vielen Dank für deine Hilfe! :)
LG
Anzeige
AW: ohne Datei nicht....
20.08.2018 20:01:10
Werner
Hallo Stephan,
du hast auf deiner Userform2 eine Textbox AnlagenTyp. Diese Textbox liegt aber ganau über der Combobox AnlagenTyp. Weshalb?
Du willst die Textbox AnlagenTyp an die Userform3 übergeben. Aber in Textbox3 auf Userform2 ist kein Wert. Der Wert ist auf Userform2 in Combobox AnlagenTyp.
Muss ich das verstehen?
Gruß Werner
Anzeige
AW: ohne Datei nicht....
20.08.2018 20:08:25
Stephan
Ich danke dir Werner!!! Ich habe ja meine ComboBox unter der TextBox gehabt und die vollkommen vergessen .... Jetzt klappt das auch so wie gewünscht. Danke, danke, danke! Ich habe den Fehler einfach nicht gefunden, dabei war er soo offensichtlich ....
Das muss so sein mit der TextBox und ComboBox, da man eine komplett freie Eingabe machen soll, wenn man bei der Kategorie "Sonstiges" auswählt. Daher liegen da zwei Boxen übereinander :)
Anzeige
AW: ohne Datei nicht....
20.08.2018 20:20:13
Werner
Hallo Stephan,
na dann klick mal in Userform3 auf den Button "Einfügen". Da knallts dann. Hier dein Code dazu:
Private Sub CommandButton_Einfügen_Click()
Dim last As Long
With Sheets("Datenbank")
last = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Cells(last, 1).Value = "Zentrifuge"
.Cells(last, 2).Value = ComboBox_Typ
.Cells(last, 3).Value = TextBoxKunde
.Cells(last, 4).Value = TextBox_Projektleiter
.Cells(last, 5).Value = TextBox_Auftragsnummer
.Cells(last, 7).Value = TextBox_CENummer
.Cells(last, 10).Value = TextBox_OrdnerNummer
.Cells(last, 8).Value = ComboBox_Konstruktionsjahr
.Cells(last, 6).Value = TextBox_Lieferdatum
.Cells(last, 24).Value = ComboBox_Polymerstation
.Cells(last, 25).Value = TextBox_PolymerpumpeNummer
.Cells(last, 27).Value = TextBox_SchlammpumpeNummer
End With
MsgBox ("Die Daten wurden erfolgreich in die Datenbank eingegeben!")
Unload UserForm3
Unload UserForm1
ActiveWorkbook.Save
End Sub
Eine
.Cells(last, 2).Value = ComboBox_Typ

derartige ComboBox gibt es aber auf deiner Userform3 nicht.
Und wenn du in deiner Userform3 auf Abbrechen klickst, dann knallts wieder und zwar hier:
Private Sub CommandButton_Abbrechen_Click()
Unload UserForm3
Unload UserForm1
End Sub
Wo du wieder hin willst weiß ich jetzt nicht. Wieder zurück zur Userform2 dann nur Userform2 schließen.
Private Sub CommandButton_Abbrechen_Click()
Unload UserForm3
End Sub
Gruß Werner
Anzeige
AW: ohne Datei nicht....
20.08.2018 20:30:15
Stephan
Der Teil ist noch nicht angepasst, daher haut der da alles noch raus gerade. Aber vielen vielen Dank dir. Du hast mich echt weiter gebracht!
LG
AW: ohne Datei nicht....
20.08.2018 20:30:17
Stephan
Der Teil ist noch nicht angepasst, daher haut der da alles noch raus gerade. Aber vielen vielen Dank dir. Du hast mich echt weiter gebracht!
LG
Anzeige
AW: ohne Datei nicht....
20.08.2018 20:30:18
Stephan
Der Teil ist noch nicht angepasst, daher haut der da alles noch raus gerade. Aber vielen vielen Dank dir. Du hast mich echt weiter gebracht!
LG
AW: ohne Datei nicht....
20.08.2018 20:30:19
Stephan
Der Teil ist noch nicht angepasst, daher haut der da alles noch raus gerade. Aber vielen vielen Dank dir. Du hast mich echt weiter gebracht!
LG
Anzeige
AW: ohne Datei nicht....
20.08.2018 20:30:20
Stephan
Der Teil ist noch nicht angepasst, daher haut der da alles noch raus gerade. Aber vielen vielen Dank dir. Du hast mich echt weiter gebracht!
LG
Gerne u.Danke für die Rückmeldung und...
20.08.2018 20:41:29
Werner
Hallo Stephan,
...bitte nicht dauernd F5. Da hast du ständig einen neuen Beitrag raus.
Gruß Werner
AW: ohne Datei nicht....
20.08.2018 20:30:21
Stephan
Der Teil ist noch nicht angepasst, daher haut der da alles noch raus gerade. Aber vielen vielen Dank dir. Du hast mich echt weiter gebracht!
LG
Anzeige
;
Anzeige

Infobox / Tutorial

Wert an andere Userform übergeben


Schritt-für-Schritt-Anleitung

Um einen Wert von einer UserForm zur anderen in Excel VBA zu übergeben, folge diesen Schritten:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Erstelle zwei UserForms: UserForm1 und UserForm2.

  3. Füge eine TextBox (TextBox_Test) in UserForm1 und eine andere TextBox (TextBox_Test2) in UserForm2 hinzu.

  4. Füge einen Button (z.B. "Weiter") in UserForm1 hinzu.

  5. Schreibe den folgenden Code in das Click-Ereignis des Buttons in UserForm1:

    Private Sub CommandButton_Weiter_Click()
       UserForm2.TextBox_Test2.Value = Me.TextBox_Test.Value
       UserForm2.Show
    End Sub
  6. Füge den Code in das Initialize-Ereignis von UserForm2 ein, um sicherzustellen, dass der Wert korrekt angezeigt wird:

    Private Sub UserForm_Initialize()
       TextBox_Test2.Value = UserForm1.TextBox_Test.Value
    End Sub

Häufige Fehler und Lösungen

  • Fehler: TextBox bleibt leer
    Lösung: Stelle sicher, dass du den richtigen Namen der TextBox verwendest. Überprüfe, ob du UserForm1.TextBox_Test.Value und nicht nur TEXTBOX_TEST ohne Bezug auf die UserForm schreibst.

  • Fehler: Code wird nicht ausgeführt
    Lösung: Der Code muss im entsprechenden Ereignis (z.B. CommandButton_Click) platziert werden. Überprüfe auch, ob UserForm2 korrekt aufgerufen wird.


Alternative Methoden

Eine alternative Methode zur Übergabe von Werten zwischen UserForms besteht darin, öffentliche Variablen oder eine Klasse zu verwenden. Hier ist ein einfaches Beispiel:

  1. Erstelle ein Modul und definiere eine öffentliche Variable:

    Public Wert As String
  2. Setze den Wert in UserForm1:

    Private Sub CommandButton_Weiter_Click()
       Wert = Me.TextBox_Test.Value
       UserForm2.Show
    End Sub
  3. Lese den Wert in UserForm2 aus:

    Private Sub UserForm_Initialize()
       TextBox_Test2.Value = Wert
    End Sub

Praktische Beispiele

Hier ist ein praktisches Beispiel, um die Übergabe zwischen zwei UserForms zu demonstrieren:

  • UserForm1 enthält eine ComboBox (AnlagenTyp) und einen Button:

    Private Sub CommandButton_Weiter_Click()
      UserForm2.TextBox_Test2.Value = Me.ComboBox_AnlagenTyp.Value
      UserForm2.Show
    End Sub
  • UserForm2 zeigt den Wert in einer TextBox an:

    Private Sub UserForm_Initialize()
      TextBox_Test2.Value = UserForm1.ComboBox_AnlagenTyp.Value
    End Sub

Tipps für Profis

  • Verwende Klassenmodule für komplexere Anwendungen, um die Struktur und Lesbarkeit deines Codes zu verbessern.
  • Verwende Error Handling, um potenzielle Fehler abzufangen, die beim Zugriff auf UserForms auftreten können.
On Error Resume Next
' Dein Code hier
On Error GoTo 0
  • Teste regelmäßig, um sicherzustellen, dass alle Werte korrekt übergeben werden und die UserForms wie gewünscht funktionieren.

FAQ: Häufige Fragen

1. Warum funktioniert mein Code nicht?
Überprüfe die Namen deiner UserForms und TextBoxen, um sicherzustellen, dass sie korrekt referenziert werden.

2. Kann ich mehrere Werte gleichzeitig übergeben?
Ja, du kannst mehrere TextBoxen oder ComboBoxen in einem ähnlichen Verfahren übergeben, indem du den Code entsprechend anpasst.

3. Was ist der Unterschied zwischen UserForm_Initialize und UserForm_Activate?
UserForm_Initialize wird ausgeführt, wenn die UserForm zum ersten Mal geladen wird, während UserForm_Activate ausgeführt wird, wenn die UserForm aktiviert wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige