Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Userform: Textfeld soll Inhalt behalten





Frage

Hallo Ihr guten Geister... Ich hab eine Userform mit 3 Schiebereglern und 3 Textfeldern. Die eingestellten Werte der Schieberegler (0-255) werden jeweils im dazugehöhrigem Textfeld angezeigt. Nun mein Problem: Wenn ich die Userform über einen Button mit dem Befehl Userfom1.hide schließe, und dann wieder öffne stehen die zuvor eingestellten Werte noch in den Textfeldern. Wenn die Userform allerdings über den Schließ-Button oben rechts geschlossen wird, sind sie beim erneuten Öffen weg. Wie kann ich erreichen, das die eingestellten Werte auf jeden Fall erhalten bleiben? Ach, nur so nebenbei..... es sollen damit die RGB-Werte für eine Hintergrundfarbe eingestellt werden.... und auch bitte so bleiben. Grüße an alle Helfer.. Andreas

Antwort 1 von coros

Hallo Andreas,

mit dem Unload-Befehl wird die UserForm geschlossen und verliert dabei auch jegliche Werte. Bei .Hide ist das nicht so, da diese nur in den Hintergrund wandert, aber dennoch offen ist. Damit die Werte nach dem Unload-Befehl nciht verloren gehen, mustt Du diese vorher sichern. Entweder Du legst DIr eine Hilfstabelle an und überträgst dorthin die Daten vor dem Schließen oder Du legst die Daten z.B. mit den entsprechenden Befehlen in einem eigenen Registryschlüssel oder in einer Textdatei ab. Diese gesicherten Daten ließt Du dann über das UserForm_Initialize()-Ereignis wieder in die entsprechenden Felder ein.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von fedjo

Hallo Andreas,
Code in die UserForm einfügen, danach kann sie nicht mehr mit den Schließ-Button geschlossen werden.

Button mit UserForm1. Hide erstellen.

Zitat:
Wenn ich die Userform über einen Button mit dem Befehl
Userfom1.hide schließe, und dann wieder öffne stehen die zuvor eingestellten Werte noch in den Textfeldern.


Gruß
fedjo

Antwort 3 von fedjo

Hallo Andreas,
habe doch tatsächlich den Code vergessen.

Gruß
fedjo

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Damit UserForm über X nicht geschloßen werden kann
If CloseMode = 0 Then
MsgBox "Bitte schließen Sie das Fenster mit der Schaltfläche 'Beenden'.", vbCritical
Cancel = 1
End If
End Sub

Antwort 4 von Kauz

Guten Morgen...
@fedjo
An eine Möglichkeit den Schließbutton abzufangen hab ich auch gedacht... danke für den Code.

@ Oliver
Wenn ich Deine Antwort richtig interpretiere, so ist es nicht möglich
Inhalte dauerhaft in der Value - Text - Eigenschaft eines Textfeldes
per VBA zu schreiben.
Es sei denn der Wert wird im Entwicklermodus dort eingetragen.

Die Inhalte sollen natürlich auch nach dem Schließen und Öffnen der Exceldatei noch vorhanden sein.

Fazit:
Ich hab also nur die Möglichkeit diese Werte in Zellen ab zu legen,
um diese beim Starten von dort wieder einzulesen... oder
ich nehme sie mit in eine Parameterdatei, die sowieso schon exestiert.

Danke euch beiden... so brauch wenigstens nicht auf meinem
Holzweg weitersuchen...

Gruß
Andreas

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: