Frage von MPCKhome, 133

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

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Suboptimierer, Community-Experte für Excel, 105

Wie schließt du denn die Form?

Wenn du Me.Hide verwendest, sollten eigentlich die Einstellungen beibehalten werden.

Kommentar von Garfield0001 ,

hide heißt ausblenden und nicht schließen :-)

Kommentar von Suboptimierer ,

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.

Kommentar von MPCKhome ,

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

Expertenantwort
von Oubyi, Community-Experte für Excel, 90

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.

Expertenantwort
von Ninombre, Community-Experte für Excel, 99

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.ä.

Antwort
von ThomasAral, 89

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.

Kommentar von MPCKhome ,

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

Keine passende Antwort gefunden?

Fragen Sie die Community