VBA Userform, merken von Auswahl. Wie geht das?
Guten Tag,
Ich habe in Excel eine Userform erstellt mit der man durch Auswahl von einigen Comboboxen und Listboxen eine Tabelle erstellen lässt.
Beim schließen der Userform ist diese Auswahl wie gewohnt weg. Sprich die Comboboxen sind wieder in der Grundeinstellung, also nichts ausgewählt.
Gibt es einen weg das dies nicht so ist, also das beim schließen die auswahl gespeichert wird und beim nächsten öffnen wieder sichbar ist?
Danke für Hilfestellungen
4 Antworten
Wie schließt du denn die Form?
Wenn du Me.Hide verwendest, sollten eigentlich die Einstellungen beibehalten werden.
Sorry für die Späte antwor (:
Hide ist sogar noch besser.
Das merken habe ich wie folgt gemacht (schreibe ich das andere zum absoluten Ziel kommen)
Ich wollte das selbst nach dem speichern die auswahl drin bleibt. also habe ich hide zum verstecken genommen und zusätzlic auf einer anderen Tabelle ein Raster angelegt.
Dort steht:
Combobox2
Combobox3
usw darunter steht dann anfangs immer eine 0
Im code habe ich geschrieben bei initialize das die combobox vorauswahl = der Zahl ist
Also
With me.combobox2.selected(range("AC5").value)
Damit später diese Zahl in AC5 geändert wird habe ich bei
Sub Combobox2.change
geschrieben
Range("AC5")=combobox2.selection
Richtig. M. M. n. könnte das das Problem des Fragestellers lösen.
Es sein denn, die Einstellungen sollen sogar noch beim Schließen der Arbeitsmappe erhalten bleiben.
Dann würde ich mir ein verstecktes Sheet zur Abspeicherung von Einstellungen erstellen.
ja mehrere möglichkeiten. über ereignissteuerung die daten in die registrierungsdatenbank schreiben, die daten in eine extra INI Datei schreiben auf der Festplatte oder wenn es nur während der einen excel-sitzung benötigt wird in globale variable speichern. Sobald das Form geöffnet wird (wieder ereignisgesteuert) auselesen der alten daten, sofern welche gefunden werden.
hört sich schon mal gut an.
Könntest du eine Variante näher erläutern?
Am besten wäre es wenn die Daten in keiner neuen Datei gespeichert werden sondern direkt in der Excel-Datei
Danke schon mal
Also ICH würde ein Sheet erstellen, in dem ich die Werte speichern kann und das dann mit:
Sheets("Tabelle").Visible = xlVeryHidden
vor Zugriff außerhalb von VBA sichern.
Beim Öffnen der Arbeitsmappe dann wieder einlesen.
Pragmatisch: Einfach mit VBA in eine Zelle schreiben, da wäre es auch nach dem Schließen der Exceltabelle wieder herstellbar, ansonsten globale Variable: Außerhalb der Sub/Function die Variable definieren mit dem Schlüssel public, also
public xyz as string o.ä.
hide heißt ausblenden und nicht schließen :-)