Werte in Userform beibehalten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Werte in Userform beibehalten
von: Nik
Geschrieben am: 23.05.2002 - 09:48:15

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.


nach oben   nach unten

Re: Werte in Userform beibehalten
von: Timo
Geschrieben am: 23.05.2002 - 10:11:32

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


nach oben   nach unten

Re: Werte in Userform beibehalten
von: PeterA
Geschrieben am: 23.05.2002 - 10:14:24

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


nach oben   nach unten

Re: Werte in Userform beibehalten
von: Nik
Geschrieben am: 23.05.2002 - 10:24:13

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


nach oben   nach unten

Re: Werte in Userform beibehalten
von: Timo
Geschrieben am: 23.05.2002 - 10:30:20

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


nach oben   nach unten

Re: Werte in Userform beibehalten
von: Nik
Geschrieben am: 23.05.2002 - 10:38:50

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


nach oben   nach unten

Re: möglicherweise doch
von: Rainer
Geschrieben am: 23.05.2002 - 11:27:19

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


nach oben   nach unten

Re: möglicherweise doch
von: Nik
Geschrieben am: 23.05.2002 - 12:17:58

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


nach oben   nach unten

Re: möglicherweise doch
von: Rainer
Geschrieben am: 23.05.2002 - 13:14:46

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:


Private Sub UserForm_Initialize()
    
    MsgBox "Userform1 inizialisieren!"
    UserForm1.TextBox1.Value = "Hallo!"
    
End Sub

Private Sub UserForm_Initialize()
    
    MsgBox "Userform2 inizialisieren!"
    UserForm2.TextBox1.Value = "Jetzt bin ich hier!"
    
End Sub

Private Sub UF1_CommandButton1_Click()

    MsgBox "Userform2 zeigen"
    UserForm1.Hide
    UserForm2.show
    
End Sub


Sub UF2_CommandButton1_Click()
    
    MsgBox "Userform1 zeigen"
    UserForm2.Hide
    UserForm1.Show

End Sub

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

Lieben Gruß
Rainer

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Werte in Userform beibehalten"