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

Forumthread: Userform offen lassen VBA aber weiter laufen

Userform offen lassen VBA aber weiter laufen
23.07.2007 21:08:00
Tobias
Hallo , ich rufe innerhalb einem Sub eine Userform mit Userform.show auf.
Nur wenn ich die Userform wieder schließe läuft die Abfolge weiter.
Wie kann man es weiterlaufen lassen ohne das die Box geschlossen werden muss?

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform offen lassen VBA aber weiter laufen
23.07.2007 21:13:00
Hubert
Hi,
zeig die Userform nicht modal an.
mfg Hubert

AW: Userform offen lassen VBA aber weiter laufen
23.07.2007 21:24:00
Tobias
Hallo Hubert ,
was meinst du mit Modal ?

AW: Userform offen lassen VBA aber weiter laufen
23.07.2007 21:28:34
Matthias
Hallo
im Eigenschaftenfenster des Userform Modal auf False stellen
Userbild
Userbild

Anzeige
AW: Userform offen lassen VBA aber weiter laufen
23.07.2007 21:35:54
Tobias
Dann kommt die Fehlermeldung
Laufzeitfehler 401
Ungebundenes Formular kann nicht angezeigt werden, während gebundenes Formular angezeigt wird.

AW: Userform offen lassen VBA aber weiter laufen
23.07.2007 21:42:53
Hubert
Hi,
wenn du mehrere Userformen verwendest, müssen entweder alle modal oder alle nicht modal angezeigt werden.
mfg Hubert

Anzeige
AW: Userform offen lassen VBA aber weiter laufen
23.07.2007 21:57:00
Tobias
Ja das geht schon mal.
Nur jetzt wird das Userform nicht mehr gefüllt.
Das habe ich hiermit gemacht

Private Sub UserForm_Activate()
txtSearch.Value = Range("spe17").Value
Call FillList
End Sub


AW: Userform offen lassen VBA aber weiter laufen
23.07.2007 22:49:21
Herby
Hallo Tobias,
wird das Feld txtSearch nicht gefüllt ?
txtSearch.Value = Range("spe17").Value
dann ist vielleicht der Bereich spe17 im Tabellenblatt leer,
oder gibts noch weitere Felder auf der betroffenen Userform.
Mit dem Call FillList rufst Du eine weitere Procedure auf. Vielleicht liegts ja an der Procedure.
Am einfachsten wäre es, wenn Du eine Testmappe hochladen könntest, dann könnten die Spezialisten das Problem viel leichter erkennen. Die ganze Nachfragerei ist halt immer ein Stochern im Nebel.
viele Grüße
Herby

Anzeige
AW: Userform offen lassen VBA aber weiter laufen
24.07.2007 00:31:33
Tobias
So jetzt weiss ich woran es liegt, aber nicht wieso es so ist ^^
Also ich öffne auch eine MsgBox. Wenn ich diese Auskommentiere funktioniert es.
Was muss ich denn mit der Messagebox machen?
lg
Tobi

Messagebox modal - Modeless
24.07.2007 09:50:00
Herby
Hallo Tobi,
eine Messagebox kann nur modal aufgerufen werden, dh. erst wenn Du diese Messagebox wieder wegklickst (z.B. über einen OK-Button) dann kannst Du weiterarbeiten. Eine Lösung zu diesem Problem sieht so aus, dass Du eine Userform so aufbereitest und sie als Messagebox verwendest. Ich hab Dir mal ein Beispiel gemacht:
https://www.herber.de/bbs/user/44384.xls
Viele Grüße
Herby

Anzeige
AW: Messagebox modal - Modeless
24.07.2007 12:39:00
Tobias
Vielen Dank Herby
so funktioniert es.
lg Tobi
;
Anzeige
Anzeige

Infobox / Tutorial

Userform in Excel VBA modeless anzeigen


Schritt-für-Schritt-Anleitung

Um eine Userform in Excel VBA modeless anzuzeigen, sodass der Code weiterläuft, während die Userform offen bleibt, kannst Du folgende Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Erstelle eine Userform:

    • Klicke auf „Einfügen“ und wähle „UserForm“.
  3. Setze die Eigenschaften der Userform:

    • Wähle die Userform im Eigenschaftenfenster aus.
    • Setze die Eigenschaft Modal auf False.
  4. Zeige die Userform modeless an:

    • Nutze den folgenden Code in deinem Sub:
      UserForm1.Show vbModeless
    • Dies öffnet die Userform, ohne dass der Code angehalten wird.
  5. Rufe die Userform innerhalb eines Subs auf:

    • Du kannst die Userform mit dem Befehl Call oder direkt mit UserForm1.Show vbModeless aufrufen.

Häufige Fehler und Lösungen

  • Laufzeitfehler 401:

    • Dies tritt auf, wenn Du versuchst, eine modeless Userform zu zeigen, während eine andere Userform modal angezeigt wird. Stelle sicher, dass alle Userforms dieselbe Modalität (entweder alle modal oder alle modeless) haben.
  • Userform wird nicht gefüllt:

    • Stelle sicher, dass Du die richtigen Datenquellen benutzt. Überprüfe, ob der Bereich, den Du referenzierst, nicht leer ist.

Alternative Methoden

  • Verwenden einer Messagebox als Userform:

    • Wenn Du eine Messagebox benötigst, die nicht modal ist, kannst Du eine Userform so gestalten, dass sie wie eine Messagebox aussieht und sie dann als modeless anzeigen.
  • Nutzen von Application.Wait oder DoEvents:

    • Diese Funktionen können verwendet werden, um den Code kurzfristig anzuhalten, ohne dass die Userform geschlossen wird.

Praktische Beispiele

Hier ein einfaches Beispiel, wie Du eine Userform modeless öffnen kannst:

Sub ShowUserForm()
    UserForm1.Show vbModeless
    ' Weitere Anweisungen, die nach dem Öffnen der Userform ausgeführt werden
    MsgBox "Die Userform ist jetzt offen!"
End Sub

In diesem Beispiel wird die Userform angezeigt, während gleichzeitig eine Nachricht angezeigt wird.


Tipps für Profis

  • Benutze mit Bedacht: Achte darauf, dass die Benutzeroberfläche nicht überladen wird, wenn Du mehrere modeless Userforms gleichzeitig öffnest.
  • Testen: Teste Deine Userform in verschiedenen Szenarien, um sicherzustellen, dass sie in allen Fällen korrekt funktioniert.
  • Ereignisse der Userform: Nutze Ereignisse wie UserForm_Activate und UserForm_QueryClose, um die Interaktivität und das Nutzererlebnis zu verbessern.

FAQ: Häufige Fragen

1. Was bedeutet modal und modeless in Bezug auf Userforms?
Modal bedeutet, dass die Userform den Fokus hat und der Benutzer sie schließen muss, bevor er wieder mit der Hauptanwendung interagieren kann. Modeless erlaubt es dem Benutzer, weiterhin mit der Anwendung zu arbeiten, während die Userform geöffnet ist.

2. Kann ich mehrere Userforms gleichzeitig modeless anzeigen?
Ja, Du kannst mehrere Userforms modeless anzeigen, solange Du darauf achtest, dass sie nicht gleichzeitig modal sind.

3. Wie kann ich sicherstellen, dass meine Userform korrekt gefüllt wird?
Überprüfe, dass alle referenzierten Bereiche in den Excel-Tabellen korrekt sind und dass keine anderen Userforms modal angezeigt werden, während Du versuchst, die Userform zu öffnen.

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