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

Werte in Userform beibehalten

Forumthread: Werte in Userform beibehalten

Werte in Userform beibehalten
23.05.2002 09:48:15
Nik
Hallo

Ich habe eine Userform, welche durch ein Button auf dem Excel-sheet geöffnet wird. (userform1.show). Darin ist es möglich, diverses Einstellungen vorzunehmen (checkboxes). Danach drückt man OK womit ein Makro gestartet wird. Die Form verstecke ich (userform1.hide). Wenn ich nun die Userform erneut aufrufe sind alle Werte zurückgesetzt. Ich möchte aber, dass alle Werte wie Checkboxes, Textfelder etc. die Werte behalten. Wie ist das möglich? Auf wenn die Form nicht sichtbar ist, sollte es möglich sein, andere Makros anzusteuern und auszuführen. Gibt es da komplikationen?

Vielen Dank für die Mithilfe.

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Werte in Userform beibehalten
23.05.2002 10:11:32
Timo
Wie rufst du den die Userform wieder auf? Mit UserForm1.Show? Dann sollten die Werte eigentlich noch die selben sein. Wenn du allerdings die Form wieder initialisierst sind die Werte verschwunden...

Gruss
Timo

Re: Werte in Userform beibehalten
23.05.2002 10:14:24
PeterA
Hallo Nik

Bevor du die Userform versteckst, mußt du die gesetzten Einstellungen am Besten in eine Tabelle schreiben

Tabelle1.Cells(1, 1) = CheckBox1


und bei Aufruf wieder so setzen.

CheckBox1 = Tabelle1.Cells(1, 1)

Ciao PeterA

Anzeige
Re: Werte in Userform beibehalten
23.05.2002 10:24:13
Nik
Hallo Timo

Ich rufe die form mit "userform1.show" wieder auf. Die Werte setzen sich jedoch zurück, obwohl ich nirgends "unload me" gesetze habe.

Beste Grüsse
Nik

Re: Werte in Userform beibehalten
23.05.2002 10:30:20
Timo
Argh, das ist doof...
Dann bleibt dir wohl nichts anderes übrig, als die Werte tatsächlich in eine Tabelle zu schreiben (Ein array sollte auch gehen bzw. Variablen) und diese nachher wieder auszulesen...

Tut mir leid,
Timo

Anzeige
Re: Werte in Userform beibehalten
23.05.2002 10:38:50
Nik
Vielen Dank für die Hilfe. Der Computer erleichtert einem die Arbeit (ab und zu auch das Gegenteil), und trotzdem muss ich noch arbeiten.

Gruss Nik

Re: möglicherweise doch
23.05.2002 11:27:19
Rainer
Lieber Nik!

Das mit Hide and Show stimmt schon, was vorher geschrieben wurde. Wird die Userform initialisiert, sind die Daten weg. Daher sollte man verhindern, dass diese inizialisiert wird.

Ich habe es zwar nicht ausprobiert, aber ich könnte mir vorstellen, dass du beim Initialisieren eine Variable abfragst. Ist diese zB TRUE, dann inizialisiere, sonst nicht. Du must dann diese Variable an der Stelle auf FALSE setzten, wenn du deine Userform versteckst. Nicht vergessen, diese wieder auf TRUE zu setzten.

Geht auch mit einer Integervariablen. ist der Wert noch nicht festgelegt, ist der Wert der Variablen 0.

Sag mir, ob das hilft!

Lieben Gruß
Rainer

Anzeige
Re: möglicherweise doch
23.05.2002 12:17:58
Nik
Hallo Rainer

Inzwischen habe ich das ganze mit der Tabellenvariante gelöst. Es so , dass ich nicht nur True oder False Werte habe, sondern weitere Daten wie Datum, Text etc.

Es ist so, dass beim Start der Form kein Vorgaben im Makro gemacht werden. Trotzdem werden alle Daten initialisiert.

Vielen Dank

Nik

Anzeige
Re: möglicherweise doch
23.05.2002 13:14:46
Rainer
Lieber Nik!

Ich meinte eine neue Variable definieren, deren Wert du beim Inizialisieren abfragst.

Im übrigen habe ich allerdings mit Excel2000 folgenden Code ausprobiert und es funktioniert ohne Zwischenschreiben:

Userform1:
TextBox1, TextBox2, CommandButton1
TextBox1 wird beim Initialisieren mit "Hallo" gefüllt.

Userform2:
TextBox1, TextBox2, CommandButton1
TextBox2 wird beim Initialisieren mit "Jetzt bin ich hier!" gefüllt.


Schreibe ich etwas in die beiden Textboxen, bleibt es. Zur Kontrolle, dass keine Inizialisierung vorgenommen wird, schreibe ich die MsgBoxen:

Ich kann es hier leider nicht überprüfen, aber normalerweise sollte das auch mit XL 8.0 funktionieren.

Lieben Gruß
Rainer

Anzeige
;
Anzeige

Infobox / Tutorial

Werte in Userform beibehalten


Schritt-für-Schritt-Anleitung

Um die Werte in einer Userform in Excel beizubehalten, kannst du folgende Schritte ausführen:

  1. Userform erstellen: Erstelle eine Userform in Excel, die verschiedene Steuerelemente wie Textfelder und Checkboxes enthält.

  2. Werte speichern: Bevor du die Userform versteckst, speichere die Werte der Steuerelemente in einer Tabelle. Zum Beispiel:

    Tabelle1.Cells(1, 1) = CheckBox1.Value
    Tabelle1.Cells(1, 2) = TextBox1.Text
  3. Userform verstecken: Verwende UserForm1.Hide, um die Userform zu verstecken.

  4. Werte wiederherstellen: Wenn die Userform erneut angezeigt wird, setze die gespeicherten Werte wieder zurück:

    CheckBox1.Value = Tabelle1.Cells(1, 1)
    TextBox1.Text = Tabelle1.Cells(1, 2)
  5. Makros anstoßen: Stelle sicher, dass andere Makros weiterhin funktionieren, auch wenn die Userform versteckt ist.


Häufige Fehler und Lösungen

  • Werte sind verschwunden: Wenn du die Userform erneut öffnest und die Werte zurückgesetzt sind, könnte es daran liegen, dass du die Userform initialisierst. Stelle sicher, dass du Unload Me nicht verwendest.

  • Userform wird immer wieder initialisiert: Dies kann passieren, wenn der Code in der UserForm_Initialize-Prozedur so gestaltet ist, dass er die Werte immer wieder zurücksetzt. Überprüfe deinen Code und verhindere die Initialisierung, wenn die Werte bereits gesetzt sind.


Alternative Methoden

Wenn das Speichern der Werte in einer Tabelle nicht optimal für dich ist, kannst du auch folgende Methoden verwenden:

  • Verwendung von Variablen: Speichere die Werte in Variablen und setze diese beim Öffnen der Userform zurück.

  • Arrays: Du kannst auch ein Array verwenden, um mehrere Werte gleichzeitig zu speichern und später wiederherzustellen.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Werte in TextBoxen einer Userform mit dem Code beibehalten kannst:

Private Sub UserForm_Initialize()
    If Tabelle1.Cells(1, 1) <> "" Then
        TextBox1.Text = Tabelle1.Cells(1, 1)
        TextBox2.Text = Tabelle1.Cells(1, 2)
    End If
End Sub

Private Sub CommandButton1_Click()
    Tabelle1.Cells(1, 1) = TextBox1.Text
    Tabelle1.Cells(1, 2) = TextBox2.Text
    Me.Hide
End Sub

In diesem Beispiel wird beim Initialisieren der Userform überprüft, ob bereits Werte vorhanden sind. Wenn ja, werden diese in die TextBoxen geladen.


Tipps für Profis

  • Verwendung von globalen Variablen: Wenn du Werte in mehreren Userforms beibehalten möchtest, kannst du globale Variablen verwenden, um die Werte überall zugänglich zu machen.

  • Ereignisgesteuerte Programmierung: Überlege, ob du Ereignisse wie OnChange oder OnClick nutzen kannst, um Werte während der Interaktion mit der Userform zu speichern.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Werte nicht verloren gehen, wenn die Userform versteckt wird?
Speichere die Werte in einer Tabelle oder in Variablen, bevor du die Userform versteckst.

2. Was ist der Unterschied zwischen Hide und Unload?
Hide versteckt die Userform, während Unload die Userform vollständig aus dem Speicher entfernt und alle Werte zurücksetzt.

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