Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UserForm zurücksetzen

Forumthread: UserForm zurücksetzen

UserForm zurücksetzen
05.09.2003 08:36:07
Eugen F.
Hallo,

wie kann ich meine UserForm zurücksetzen, damit alle Textfelder leer sind.
Es soll der Zustand angezeigt werden, als wenn ich die Form erst gestartet hätte und diese erst Initialisiert wurde.

Gruß Eugen
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: UserForm zurücksetzen
05.09.2003 08:44:12
Bernd Held
Hallo Eugen,

durch folgendes Makro kannst Du das erreichen.

Private Sub CommandButton6_Click()
'Textfelder löschen
Dim tb As Object
Dim frm As UserForm

Set frm = UserForm1

For Each tb In frm.Controls
 If TypeName(tb) = "TextBox" Then tb.Value = ""
Next tb
frm.ListBox1.Clear
frm.TextBox1.SetFocus
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14



Viele Grüße
Bernd
MVP für Microsoft Excel
Aktuelle VBA-Schulungen und VBA-Bücher unter: http://held-office.de

Anzeige
Danke:
05.09.2003 09:02:59
Eugen F.
Vielen Dank, es hat funktioniert
;
Anzeige

Infobox / Tutorial

UserForm in Excel zurücksetzen


Schritt-für-Schritt-Anleitung

Um Deine UserForm in Excel zurückzusetzen und alle Textfelder zu leeren, kannst Du das folgende VBA-Makro verwenden. Dieses Makro sorgt dafür, dass die UserForm in den ursprünglichen Zustand zurückversetzt wird, als ob sie gerade erst gestartet wurde.

  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge eine neue UserForm hinzu, falls Du noch keine hast.
  3. Füge einen CommandButton zu Deiner UserForm hinzu.
  4. Klicke mit der rechten Maustaste auf den CommandButton und wähle „Code anzeigen“.
  5. Füge den folgenden Code in das Codefenster ein:
Private Sub CommandButton6_Click()
    'Textfelder löschen
    Dim tb As Object
    Dim frm As UserForm

    Set frm = UserForm1

    For Each tb In frm.Controls
        If TypeName(tb) = "TextBox" Then tb.Value = ""
    Next tb
    frm.ListBox1.Clear
    frm.TextBox1.SetFocus
End Sub
  1. Schließe den VBA-Editor und teste die UserForm, indem Du auf den Button klickst. Alle Textfelder sollten nun leer sein.

Häufige Fehler und Lösungen

  • Fehler: Die UserForm nicht sichtbar, wenn der Code ausgeführt wird.

    • Lösung: Stelle sicher, dass die UserForm mit UserForm1.Show aufgerufen wurde, bevor der Button angeklickt wird.
  • Fehler: Der Button funktioniert nicht.

    • Lösung: Überprüfe, ob der Name des CommandButtons korrekt ist und ob der Code im richtigen Codefenster eingefügt wurde.

Alternative Methoden

Eine alternative Methode, um die UserForm zurückzusetzen, besteht darin, die Initialize-Ereignisprozedur zu verwenden. Du kannst den Code für das Zurücksetzen direkt in das UserForm_Initialize-Ereignis einfügen.

Private Sub UserForm_Initialize()
    'Felder zurücksetzen
    Dim tb As Object

    For Each tb In Me.Controls
        If TypeName(tb) = "TextBox" Then tb.Value = ""
    Next tb
End Sub

Diese Methode setzt die Textfelder zurück, jedes Mal, wenn die UserForm geöffnet wird.


Praktische Beispiele

Du kannst das oben genannte Makro in verschiedenen Szenarien verwenden. Hier sind einige Beispiele:

  1. Formular für die Dateneingabe: Wenn Du ein Formular zur Dateneingabe verwendest, kannst Du nach jeder Eingabe die UserForm zurücksetzen, um neue Daten einzugeben.
  2. Umfragen oder Feedback-Formulare: Jedes Mal, wenn ein Benutzer die Umfrage abschließt, kann die UserForm mit dem Makro zurückgesetzt werden, um die nächste Umfrage zu starten.

Tipps für Profis

  • Code optimieren: Wenn Du mehrere TextBoxen hast, die Du zurücksetzen möchtest, kannst Du diese in einer Array-Variable speichern und mit einer Schleife durchlaufen.
  • Fehlermeldungen vermeiden: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass das Programm nicht abstürzt, falls ein Steuerelement nicht gefunden wird.

FAQ: Häufige Fragen

1. Wie kann ich mehrere UserForms zurücksetzen?
Du kannst eine ähnliche Methode wie oben beschrieben verwenden, indem Du den Code für jede UserForm anpasst.

2. Funktioniert das auch in Excel 2013?
Ja, der Code funktioniert in allen modernen Excel-Versionen, die VBA unterstützen, einschließlich Excel 2013 und neuer.

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