Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: UserForm 'Show' aber leer

UserForm 'Show' aber leer
Ximena
Guten Morgen :)
Ich bin an einer UserForm im Excel, die ich mit VBA programmiere. Momentan sieht es so aus, dass eine Userform kommt, man die ausfüllt und 'Continue' klickt. Dann folgt eine zweite UserForm, die man auch ausfüllen muss.
Auf der Zweiten Userform gibt es aber einen Knopf namens 'Cancel'. Ich hätte gerne, dass wenn ich Cancel drücke, dass wieder Userform1 auftaucht - aber ohne Eingaben.
Momentan sehen meine Codes etwa so aus:
UserForm 1:
Private Sub UserForm_Initialize()
LB_RequestType.ListIndex = -1
TB_Name.Text = " "
TB_Mail.Text = " "
TB_Datum.Text = " "
TB_Land.Text = " "
End Sub
Private Sub CB_Continue_Click()
If TB_Name.Text = " " Or TB_Mail.Text = " " Or TB_Datum.Text = " " _
Or TB_Land.Text = " " Or LB_RequestType.ListIndex = -1 Then
MsgBox ("Please fill out all fields!"), vbOKOnly, "Error"
Exit Sub
End If
UserForm1.Hide
UserForm2.Show
End Sub
UserForm 2:
Private Sub CB_Cancel_Click()
UserForm2.Hide
UserForm1.Show
End Sub
Kann mir da jemand weiterhelfen?
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: UserForm 'Show' aber leer
07.05.2012 08:18:18
Beverly
Hi,
schreibe im CB_Continue_Click anstelle von
UserForm1.Hide

dieses
Unload Me



AW: UserForm 'Show' aber leer
07.05.2012 08:50:24
Ximena
Hallo Beverly
Das geht leider nicht. Denn ich brauche die Informationen in UserForm1 im UserForm2. Die werden so zu sagen übernommen... Und wenn ich Unload Me schreibe, kommt ein Fehler in meinem Code...
Hast du noch eine andere Lösung?
Danke und liebe Grüsse
Ximena
Anzeige
Unload Userform1
07.05.2012 09:04:06
Matthias
Hallo
versuchs mal so:
Private Sub CB_Cancel_Click()
Unload Userform1
UserForm2.Hide
UserForm1.Show
End Sub
Gruß Matthias
AW: Unload Userform1
07.05.2012 09:07:51
Ximena
Hallo Matthias
Jaaaaaa super!! Danke es funktioniert einwandfrei!!!!! Tausend Dank!
Liebe Grüsse
Ximena
Anzeige
AW: UserForm 'Show' aber leer
07.05.2012 09:06:59
Beverly
Hi Ximena,
also ein Fehler kommt bei mir nicht.
Die Daten aus den Steuerelementen kannst du doch vorher an das andere UserForm übergeben - so nach diesem Prinzip:
Private Sub CommandButton1_Click()
UserForm2.TextBox1 = Me.TextBox1
Unload Me
UserForm2.Show
End Sub



Anzeige
AW: UserForm 'Show' aber leer
07.05.2012 09:12:08
Ximena
Hallo Beverly
Matthias hat schon eine Lösung gefunden, die auch funktioniert! (Siehe Post von Matthias)!
Danke vielmals für deine Hilfe :)
Liebe Grüsse
Ximena
;
Anzeige
Anzeige

Infobox / Tutorial

UserForm in Excel: So zeigst du deine Form richtig an


Schritt-für-Schritt-Anleitung

Um eine UserForm in Excel mit VBA richtig anzuzeigen, kannst du folgende Schritte befolgen:

  1. Erstelle die UserForms: Du benötigst mindestens zwei UserForms (UserForm1 und UserForm2).

  2. Initialisiere UserForm1: In der UserForm_Initialize-Methode setzt du die Standardwerte für die Steuerelemente:

    Private Sub UserForm_Initialize()
        LB_RequestType.ListIndex = -1
        TB_Name.Text = " "
        TB_Mail.Text = " "
        TB_Datum.Text = " "
        TB_Land.Text = " "
    End Sub
  3. Button 'Continue' hinzufügen: In der CB_Continue_Click-Methode kannst du die Eingaben überprüfen und die UserForms verwalten:

    Private Sub CB_Continue_Click()
        If TB_Name.Text = " " Or TB_Mail.Text = " " Or TB_Datum.Text = " " _
        Or TB_Land.Text = " " Or LB_RequestType.ListIndex = -1 Then
            MsgBox ("Please fill out all fields!"), vbOKOnly, "Error"
            Exit Sub
        End If
        Unload Me
        UserForm2.Show
    End Sub
  4. Cancel-Button in UserForm2: Hier wird UserForm1 wieder angezeigt, ohne die vorherigen Eingaben:

    Private Sub CB_Cancel_Click()
        Unload UserForm2
        UserForm1.Show
    End Sub

Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass UserForms leer angezeigt werden. Hier sind einige Lösungen:

  • Problem: UserForm wird leer angezeigt.

    • Lösung: Stelle sicher, dass du Unload Me in der CB_Continue_Click-Methode verwendest, bevor du UserForm2 zeigst. So wird die alte UserForm korrekt geschlossen.
  • Problem: Fehlermeldung beim Wechsel zwischen UserForms.

    • Lösung: Benutze Unload UserForm1 und UserForm2.Show, um sicherzustellen, dass keine Instanzen im Hintergrund bleiben.

Alternative Methoden

Wenn du eine UserForm anzeigen möchtest, kannst du auch andere Methoden verwenden:

  • Direktes Anzeigen: Statt Unload kannst du Hide verwenden, wenn du die Daten der ersten UserForm in der zweiten benötigen möchtest.

    Private Sub CB_Continue_Click()
        UserForm1.Hide
        UserForm2.Show
    End Sub
  • Datenübertragung: Übertrage Eingaben von UserForm1 zu UserForm2 direkt über die Steuerelemente:

    Private Sub CommandButton1_Click()
        UserForm2.TextBox1 = Me.TextBox1
        Unload Me
        UserForm2.Show
    End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele:

  1. Datenübernahme: Wenn du den Namen und die E-Mail von UserForm1 zu UserForm2 übertragen möchtest, kannst du folgendes verwenden:

    Private Sub CB_Continue_Click()
        UserForm2.TB_Name.Text = TB_Name.Text
        UserForm2.TB_Mail.Text = TB_Mail.Text
        Unload Me
        UserForm2.Show
    End Sub
  2. Mehrere UserForms verwalten: Wenn du mehrere UserForms in deiner Anwendung benötigst, kannst du Unload verwenden, um alle UserForms zu schließen:

    Private Sub CB_Cancel_Click()
        Unload UserForm1
        Unload UserForm2
        UserForm1.Show
    End Sub

Tipps für Profis

  • Verwende vba unload all userforms: Wenn du alle UserForms auf einmal schließen möchtest, kannst du dies in einer Schleife tun.

  • Debugging: Nutze Debugging-Funktionen, um sicherzustellen, dass alle Daten korrekt übertragen werden. Überprüfe, ob die Steuerelemente wirklich die erwarteten Werte haben.

  • Vermeide leere UserForms: Achte darauf, dass alle UserForms initialisiert sind, bevor du sie anzeigst. Sonst kann es zu unerwarteten Fehlern kommen.


FAQ: Häufige Fragen

1. Warum wird meine UserForm leer angezeigt?
Das kann passieren, wenn du Unload Me nicht richtig verwendest. Stelle sicher, dass du die UserForm schließt, bevor du eine neue öffnest.

2. Wie kann ich Daten zwischen UserForms übertragen?
Du kannst die Steuerelemente direkt ansprechen und ihre Werte zuweisen, bevor du die neue UserForm anzeigst.

3. Was mache ich, wenn ich nicht mehr auf die UserForm zugreifen kann?
Verwende vba unload all userforms, um sicherzustellen, dass alle UserForms geschlossen sind, bevor du eine neue öffnest.

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