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

Forumthread: Userform aus Userform öffnen

Userform aus Userform öffnen
21.11.2006 13:24:14
michaelN
Hallo Zusammen,
ich rufe per Makro eine Userform auf:

Private Sub Maske()
Dateischutz = False
Form1.Show
'Form1.Bauvorhaben.Value = " "
'Form1.Bauort.Value = " "
'Dateischutz = True
End Sub

Das funktioniert auch!
aus dieser geöffneten Userform möchte ich eine weitere Öffnen:

Private Sub Ausgabe_Click()
'Dateischutz = False
'Unload Me
form2.Show
'Dateischutz = True
End Sub

Das funktioniert nicht! da sagt er mir immer Fehler 424.
keine Ahnung. Kann mir da jemand helfen?
Danke
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform aus Userform öffnen
21.11.2006 13:37:15
EtoPHG
Hallo Michael,
Dazu muss die Userform1 so gestartet werden:
UserForm1.Show (vbModeless)
Aber Achtung, damit kann der Benutzer während dem laufen der Userform u.U. beliebig Daten in der Tabelle ändern.
Gruss Hansueli
AW: Userform aus Userform öffnen
21.11.2006 13:56:21
Erich
Hallo Hansueli und Michael,
modeless muss nicht sein - Beispiel:
https://www.herber.de/bbs/user/38365.xls
Fehler 434 bedeutet: Objekt erforderlich. Wie heißt die zweite Userform? Wirklich form2?
(Hieße sie Form2, würde VBA automatisch aus "form2" nach Verlassen der Zeile "Form2" machen.)
@Michael:
Was sagt VBA, wenn du unter Debuggen "Kompilieren von ..." aufrufst?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Userform aus Userform öffnen
21.11.2006 14:00:15
EtoPHG
Hallo Erich,
OK, ich nehm alles zurück und behaupte das Gegenteil... ;-)
Gruss Hansueli
AW: Userform aus Userform öffnen
21.11.2006 14:06:37
michaelN
Danke aber die Form heißt wirklich Form2 und nicht form2. Das ist ja auch das Problem.
Ich habe zwei Userformen Form1 und Form2
Aus Form1 möchte ich Form2 per Makro aufrufen.
Danke
AW: Userform aus Userform öffnen
21.11.2006 14:18:40
Hoffi
Hallo,
das muss so funktionieren, wenn nicht, dann heisst Deine Form anders (vielleicht UserForm2?)
Code aus Form1 (oder UserForm1?)

Private Sub CommandButton1_Click()
Unload Me
Form2.Show 'oder aber auch UserForm2.Show
End Sub

Was passiert denn z.Bsp. wenn Du in Deinem Code Form2. schreibst? bekommst Du dann eine Liste mit Attributen für die Form angezeigt oder nicht? Wenn nicht, heißt die Form wirklich anders.
Grüße
Hoffi
Anzeige
AW: Userform aus Userform öffnen
21.11.2006 14:47:54
michaelN
Hallo Hoffi,
ich habe nun die beiden Formen umbenannt Userform1; Userform2.
Es kommt immernoch der Laufzeitfehler 424. Was ist den das?
Danke für die Hilfe
AW: Userform aus Userform öffnen
21.11.2006 14:53:34
Hoffi
Hallo,
wie heisst den Dein kompletter Code und an welcher Stelle bringt er den Fehler?
Grüße
Hoffi
AW: Userform aus Userform öffnen
21.11.2006 15:05:38
michaelN
Hallo,
von dem Tabellenblatt öffne ich per Schaltfläche folgendes Makr:
Option Explicit

Private Sub E_Maske()
Userform1.Show
End Sub

(Dieses Makro funktioniert ohne Probleme)
Per schaltfläche öffne ich aus der Userform1 nachfolgendes Makro:
Option Explicit

Private Sub A_Maske()
'Unload Me
Userform2.Show
End Sub

beim Debuggen ist die Zeile Userform2.show gelb hinterlegt.
Wenn ich das Makro "A_Maske" ebenfalls aus dem Tabellenblatt öffne kommt die Fehlermeldung.
Danke
Anzeige
AW: Userform aus Userform öffnen
21.11.2006 15:14:31
Reinhard
Hi Michael,
lade mal ne kleine Beasipieldatei hoch wo der Fehler auftritt.
Gruß
Reinhard
AW: Userform aus Userform öffnen
21.11.2006 15:25:53
michaelN
Hallo zusammen,
ich habe eine Dritte Userform eingefügt, und diese entsprechend verknüpft. das Funktioniert Ohne probleme. Muss man nicht verstehen oder?
Danke für die Hilfe
Gruß
Michael
Anzeige
AW: Userform aus Userform öffnen
21.11.2006 15:19:51
Hoffi
Hallo,
wo steht denn das Makro A_Maske? Damit es funktioniert, sollte es in einem allgemeinen Modul liegen.
warum rufst Du die Zweite form nicht direkt in der Schaltfläche auf?

Private Sub Schaltfläche_Click()
Unload Me
UserForm2.Show
End Sub

Grüße
Hoffi
Anzeige
AW: Userform aus Userform öffnen
21.11.2006 15:35:27
michaelN
Hab ich auch schon versucht.
Funktionierte auch nicht.
Da ich eine dritte Userform eingefügt habe, und die dann enstprechend verknüpft habe, hat es funktioniert. also war wohl irgendwie die Userform "kaputt". Muss man nicht verstehen oder
Danke und Gruß
michael
AW: Userform aus Userform öffnen
21.11.2006 16:34:18
Erich
Hallo Michael,
Hoffi hatte dir eine Frage gestellt, deren Antwort vielleicht aufschlussreich ist:
Was passiert denn z.Bsp. wenn Du in Deinem Code
Form2.
(oder userform2.)
schreibst? bekommst Du dann eine Liste mit Attributen für die Form angezeigt oder nicht? Wenn nicht, heißt die Form wirklich anders.
Noch ne Frage:
Wenn du die "kaputte" UF im VBA-Editor ansiehst und mit F5 startest, was passiert dann?
Gibt es Userform2_Initialize() und/oder Userform2_Activate()? Was steht da drin?
Vielleicht ist da ein Problem?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Userform aus Userform öffnen
21.11.2006 16:48:35
michaelN
ich bei kein VBA-Künstler.
In der Userform2(Ausgabe) werden Daten nach einem Zwischenschritt und der Berechnung in Userform1 (Eingabe) ausgegeben. und bei der Deklaration des Codes für die Userform2 (Ausgabe) lag das Problem. Dort habe ich Vergessen diese ebenfalls um zu benennen. Nun aber funktioniert es.
Danke und Gruß
Michael
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform aus Userform öffnen in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Erstelle die Userforms: Öffne den VBA-Editor (ALT + F11) und füge zwei Userforms hinzu. Benenne sie in Userform1 und Userform2.

  2. Makro zum Öffnen der ersten Userform: Füge in einem allgemeinen Modul folgendes Makro ein, um Userform1 zu öffnen:

    Private Sub E_Maske()
       Userform1.Show
    End Sub
  3. Makro zum Öffnen der zweiten Userform: In Userform1, füge einen Button hinzu und implementiere den folgenden Code, um Userform2 zu öffnen:

    Private Sub CommandButton1_Click()
       Unload Me
       Userform2.Show
    End Sub
  4. Testen der Userform: Stelle sicher, dass beide Userforms korrekt benannt sind. Führe das Makro E_Maske aus, um zu sehen, ob Userform1 öffnet und danach Userform2 korrekt aufgerufen wird.


Häufige Fehler und Lösungen

  • Laufzeitfehler 424: Dieser Fehler tritt häufig auf, wenn das Objekt nicht gefunden wird. Überprüfe, ob die Userform tatsächlich Userform2 heißt und nicht etwa form2.

  • Korrekte Groß- und Kleinschreibung: VBA ist case-sensitive. Stelle sicher, dass die Namen der Userforms korrekt geschrieben sind.

  • Makro-Standort: Das Makro zum Öffnen der zweiten Userform sollte in einem allgemeinen Modul liegen, nicht innerhalb einer Userform.


Alternative Methoden

  • Modellesses Öffnen: Wenn du die Userform so öffnen möchtest, dass der Benutzer während des Öffnens weiterhin in der Excel-Tabelle arbeiten kann, verwende:

    Userform1.Show vbModeless
  • Userform direkt aufrufen: Statt Unload Me zu verwenden, kannst du die Userform direkt in der Schaltfläche aufrufen:

    Private Sub Schaltfläche_Click()
       Userform2.Show
    End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du eine Userform implementieren kannst, die Daten von einer zur anderen überträgt:

  1. Userform1: Füge Textfelder für Eingaben hinzu (z.B. txtName).
  2. Userform2: Füge ein Textfeld hinzu, um die Eingabe anzuzeigen (z.B. txtOutput).

In Userform1 kannst du dann den folgenden Code verwenden, um den Namen zur zweiten Userform zu übertragen:

Private Sub CommandButton1_Click()
    Userform2.txtOutput.Value = Me.txtName.Value
    Unload Me
    Userform2.Show
End Sub

Tipps für Profis

  • Debugging nutzen: Verwende die Debugger-Funktion, um Fehler zu identifizieren. Setze Haltepunkte, um den Status deiner Variablen zu überprüfen.

  • Benutzerfreundlichkeit: Überlege, wie du die Userforms gestalten kannst, um die Benutzererfahrung zu verbessern. Füge Labels hinzu, um den Benutzern zu helfen, was sie eingeben sollen.

  • Dateischutz: Denke daran, den Dateischutz zu aktivieren oder zu deaktivieren, wenn Userforms geöffnet oder geschlossen werden, um ungewollte Änderungen zu verhindern.


FAQ: Häufige Fragen

1. Wie kann ich eine Userform öffnen, ohne dass der Benutzer die Excel-Datei bearbeitet? Du kannst die Userform mit dem Befehl Userform1.Show vbModal öffnen, damit der Benutzer die Excel-Datei nicht bearbeiten kann, während die Userform geöffnet ist.

2. Was bedeutet der Fehler 434? Der Fehler 434 bedeutet, dass ein Objekt erforderlich ist. Überprüfe, ob der Name der Userform korrekt ist und dass sie im VBA-Editor existiert.

3. Wie kann ich Daten von einer Userform zur anderen übertragen? Du kannst die Werte der Textfelder in der ersten Userform an die Textfelder der zweiten Userform übergeben, bevor du die zweite Userform ö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