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

Forumthread: Laufzeitfehler 400

Laufzeitfehler 400
22.11.2008 14:08:31
Holger
Hallo zusammen,
habe ein Problem mit Excel 2007, bei Office 2003 lief alles super
Ich rufe eine UserForm auf (Menu)
von dieser UserForm rufe ich andere UserFormen auf über CommanButton.
Ich rufe beim Start die UserForm3 (Menu) auf,
von dieser UserForm können andere UserFormen aufgerufen werden.
Bis hierhin klapt alles, wenn ich aber von der aufgerufenen UserForm wieder zurück auf die UserForm3 ( Menu) möchte bekomme ich folgende Fehlermeldung.
Laufzeitfehler 400
"Formular wird bereits angezeigt und kann daher nicht gebunden dargestellt werden.
hier ist der Code welcher zum einsatz kommt.

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Sheets("Stammdaten").Select
Range("L2").Select
Selection.ClearContents
Unload Me
UserForm3.Show
Application.ScreenUpdating = True
End Sub


Für eure Hilfe bedanke ich mich schon mal.

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 400
22.11.2008 14:43:00
Daniel
Hi
da ich kein Excel 2007 habe und auch von dir keine Datei bekommen habe, mit der ich das testen kann, kann ich zu deinem Fehler leider nichts sagen.
da die Ursache aber sicherlich irgendwo im Zusammenspiel zwischen den Einzelnen Formularen liegt, ist es kaum sinnvoll, einfach nur einen Codeschnipsel hier zu posten, die vollständige Datei wäre da sicherlich sinnvoller.
wenn, wie die Fehlermeldung schon sagt, die Userform bereits angezeigt wird, vielleicht kannst du dann die Zeile "UserForm3.Show" einfach weglassen?
aber nur so als Randbemerkung, dein Code lässt sich so verkürzen:

Private Sub CommandButton2_Click()
Sheets("Stammdaten").Range("L2").ClearContents
Unload Me
UserForm3.Show
End Sub


Gruß, Daniel

Anzeige
AW: Laufzeitfehler 400
22.11.2008 14:49:00
Holger
Hallo Daniel,
die Zeile "UserForm3.Show" kann ich nicht weg lassen, das ist das Menu von dem ich die anderen UserFormen aufrufe.
Lade die Datei gerne hoch, leider weiß ich nicht wie das geht, werde es aber versuchen.
Holger
Datei ist bei "Mydrice.ch"
22.11.2008 15:04:01
Holger
Hallo Daniel,
habe die Datei bei "Mydrive.ch" gespeichert.
Benutzenname ist "Ivone"
Kennwort ist "Excel2007"
dort kannst du dir die Datei ansehen.
Hier habe ich sie nicht hochgeladen bekommen, sie ist zu gross ( 3,66MB)
Holger
Anzeige
AW: Datei ist bei "Mydrice.ch"
22.11.2008 15:31:00
Daniel
Hi
naja helfen kann ich sowieso nicht, da ich kein Excel 2007 habe
fürs Testen müssten ja eigentlich die Userforms mit ein paar Basisdaten reichen, der ganze Datenbestand in Tabellen sollte für die funktion doch überflüssig sein und könnten von dir gelöscht werden
Gruß, Daniel
AW:vieleicht dieser Fehler
22.11.2008 19:12:00
hary
Hallo Holger
Habs mal nachgebaut. (In deiner Datei konnte ich nicht ins VBA). Wenn Button1 den Code so schreibe kommt Fehler 400. Setzte ich bei Button1 das Unload vor show laeufts wie geschmiert. Beim Test dieser Codes wurde die erste Userform nicht geschlossen sie blieb offen hinter der Zweiten. Vieleicht hast Du da den Fehler aus Versehen so eingebaut.

Private Sub CommandButton1_Click()
UserForm2.Show
Unload Me                                       'vor show bringen
End Sub
Private Sub CommandButton2_Click()
Unload Me
UserForm1.Show                          ' Hier kommt der Fehler!!!
End Sub


Gruss Hary

Anzeige
Fehler wurde behoben Danke
23.11.2008 12:26:08
Holger
Hallo Hary,
danke für den Tip.
Habe es ausprobiert und es war der fehler. Jetzt läuft es
vielen vielen Dank
Holger
Bitte, danke fuer Rueckmeldung owT
23.11.2008 16:11:00
hary
.
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 400 in Excel VBA beheben


Schritt-für-Schritt-Anleitung

Wenn Du mit dem Laufzeitfehler 400 in Excel VBA konfrontiert bist, folge diesen Schritten, um das Problem zu beheben:

  1. Überprüfe den Code: Achte darauf, dass Du das Unload-Statement vor dem Show-Befehl verwendest.

    Beispiel:

    Private Sub CommandButton1_Click()
       Unload Me
       UserForm2.Show
    End Sub
  2. Vermeide doppelte Aufrufe: Stelle sicher, dass die UserForm nicht bereits angezeigt wird, bevor Du UserForm3.Show aufrufst.

  3. Testen mit minimalen Daten: Wenn Du die Datei mit vielen Daten hast, teste den Code zunächst mit einer vereinfachten Version der UserForms.

  4. Fehlermeldungen dokumentieren: Notiere Dir die genauen Fehlermeldungen, die angezeigt werden, um gezielt an Lösungen arbeiten zu können.


Häufige Fehler und Lösungen

  • Fehler 400 beim Zurückkehren zur UserForm: Dieser Fehler tritt häufig auf, wenn eine UserForm bereits angezeigt wird. Um dies zu beheben, stelle sicher, dass Du die vorherige UserForm mit Unload schließt, bevor Du die neue öffnest.

  • Visual Basic Fehler 400: Überprüfe den Code auf Logikfehler, die zu einem Konflikt zwischen den UserForms führen könnten.


Alternative Methoden

Wenn Du weiterhin Probleme mit dem Fehler 400 hast, könntest Du folgende alternative Methoden ausprobieren:

  • Fehlerbehandlung implementieren: Nutze On Error Resume Next in Deinem VBA-Code, um die Ausführung fortzusetzen, auch wenn ein Fehler auftritt. Dies kann helfen, den Fehler zu identifizieren.

  • Debugging-Tools: Verwende die Debugging-Funktionen in der Microsoft Visual Basic for Applications-Umgebung, um den genauen Punkt zu finden, an dem der Fehler auftritt.


Praktische Beispiele

Hier sind einige Beispiele, die Dir helfen können, den Fehler 400 zu vermeiden:

  1. Einfacher UserForm Wechsel:

    Private Sub CommandButton_Click()
       On Error GoTo ErrorHandler
       Unload Me
       UserForm2.Show
       Exit Sub
    ErrorHandler:
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End Sub
  2. Fehler beim Aufruf von UserForms vermeiden:

    Private Sub CommandButton_Click()
       If Not UserForm3.Visible Then
           UserForm3.Show
       End If
    End Sub

Tipps für Profis

  • Code optimieren: Halte Deinen VBA-Code so einfach wie möglich, um Fehlerquellen zu minimieren. Reduziere die Anzahl der Select und Activate-Befehle.

  • Dokumentation: Beschreibe Deinen Code ausführlich, um später bei der Fehlersuche leichter nachvollziehen zu können, was in jedem Abschnitt passiert.


FAQ: Häufige Fragen

1. Was verursacht den Laufzeitfehler 400?
Der Laufzeitfehler 400 wird häufig durch einen Konflikt zwischen angezeigten UserForms verursacht. Dies geschieht, wenn Du versuchst, eine UserForm erneut anzuzeigen, die bereits aktiv ist.

2. Wie kann ich den Fehler 400 beheben?
Stelle sicher, dass Du die vorherige UserForm mit Unload schließt, bevor Du eine neue öffnest, und überprüfe Deinen Code auf Logikfehler.

3. Gibt es eine Möglichkeit, den Fehler zu ignorieren?
Ja, Du kannst On Error Resume Next verwenden, um den Fehler zu ignorieren, aber dies ist nicht empfehlenswert, da Du möglicherweise wichtige Informationen über die Ursache des Problems verlierst.

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