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

Forumthread: Userform_Initialize erneut aufrufen ?

Userform_Initialize erneut aufrufen ?
13.12.2004 19:39:31
Thomas_H
Hallo NG!
Ich brauch wieder einmal eure Hilfe.
Ich habe eine Userform welche Daten in ein Formular einträgt. Danach erscheint die Frage ob man ein neues Formular erstellen möchte. (Ja/Nein)
Nun möchte ich das die Userform erneut aufgerufen wird (ohne schließen und neu öffnen) und alle Felder wieder auf Anfang gestzt sind, wie z.b.
"reload Initialize" oder so.
Wie geht das, bzw. wie sieht der VBA-Code dafür aus ?
Danke für eure Hilfe,
Thomas H.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform_Initialize erneut aufrufen ?
Ramses
Hallo
Von hinten durch die Brust ins Auge ;-)
ApplicationScreenupdating = false
Me.Close
UserformName.Show
ApplicationScreenupdating = true
Gruss Rainer
AW: Userform_Initialize erneut aufrufen ?
Luschi
Hallo Thomas,
schreibe alle Befehle aus dem Userform_Initialize - Ereieignis in eine seperate Prozedure in einem globalen Modul.
Public Sub macheDasHier
' hier die Befehle
End Sub

Private Sub UserForm_Initialize()
Call macheDasHier
End Sub

Dann kannst Du die "macheDasHier"-Prozedure von überall aufrufen.
Gruß von Luschi
aus klein-Paris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform in Excel VBA erneut initialisieren


Schritt-für-Schritt-Anleitung

Um eine Userform in Excel VBA erneut zu initialisieren, ohne sie schließen und neu öffnen zu müssen, kannst du die folgenden Schritte befolgen:

  1. Erstelle eine neue Sub-Prozedur in einem globalen Modul, die alle Initialisierungsbefehle enthält.

    Public Sub macheDasHier()
       ' Hier die Befehle für die Initialisierung
       ' Beispiel: TextBox1.Value = ""
       ' Weitere Initialisierungen ...
    End Sub
  2. Ändere das UserForm_Initialize-Ereignis, um die neue Prozedur aufzurufen:

    Private Sub UserForm_Initialize()
       Call macheDasHier
    End Sub
  3. Um die Userform erneut anzuzeigen, schließe sie und öffne sie erneut im Code:

    Private Sub UserForm_Activate()
       Application.ScreenUpdating = False
       Me.Hide
       UserFormName.Show
       Application.ScreenUpdating = True
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Userform wird nicht initialisiert.

    • Lösung: Stelle sicher, dass alle Initialisierungsbefehle in der macheDasHier-Prozedur enthalten sind.
  • Fehler: Userform bleibt leer.

    • Lösung: Überprüfe, ob das UserForm_Initialize-Ereignis korrekt aufgerufen wird.

Alternative Methoden

Eine alternative Methode zur Initialisierung der Userform könnte das Setzen von Werten direkt im Code vor dem Anzeigen der Userform sein. Anstatt sie zu schließen, kannst du auch nur die Werte zurücksetzen:

Private Sub ResetUserForm()
    TextBox1.Value = ""
    ' Weitere Reset-Befehle
End Sub

Du kannst diese Methode dann aufrufen, bevor du die Userform zeigst, ohne sie zu schließen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie die Userform mit vordefinierten Werten initialisiert wird:

Public Sub macheDasHier()
    TextBox1.Value = "Gib hier deinen Text ein"
    ComboBox1.List = Array("Option 1", "Option 2", "Option 3")
    ' Weitere Initialisierungen ...
End Sub

Wenn der Benutzer ein neues Formular anlegen möchte, kannst du die Prozedur ResetUserForm aufrufen, und die Userform wird mit den Standardwerten angezeigt.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False und Application.ScreenUpdating = True, um das Flicker-Effekt beim Anzeigen der Userform zu vermeiden.
  • Überlege, ob du die Userform mit dem UserForm_Activate-Ereignis oder einer benutzerdefinierten Methode anzeigst, um die Benutzererfahrung zu verbessern.
  • Teste die Userform gründlich in verschiedenen Szenarien, um sicherzustellen, dass alle Werte korrekt zurückgesetzt werden.

FAQ: Häufige Fragen

1. Wie kann ich die Userform schließen, ohne sie zu schließen?
Du kannst die Userform einfach verstecken und sie dann erneut anzeigen, nachdem die Werte zurückgesetzt wurden.

2. Wie rufe ich die macheDasHier-Prozedur von einer anderen Userform auf?
Stelle sicher, dass du die Prozedur in einem Modul gespeichert hast. Dann kannst du sie mit Call macheDasHier in jeder Userform verwenden.

3. Kann ich mehrere Userforms auf diese Weise initialisieren?
Ja, du kannst für jede Userform eine eigene Initialisierungsprozedur erstellen oder eine allgemeine Prozedur, die mehrere Userforms behandelt.

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