Excel VBA, Combobox ergänzen?

PWolff  11.11.2022, 12:57

Befinden sich ComboBox und Textfeld auf einer UserForm oder auf einer Tabelle?

Bezieht die ComboBox ggf. ihre Daten aus der Tabelle?

Soll/darf ggf. die Tabelle mit verändert werden?

TygaX 
Fragesteller
 11.11.2022, 13:02

Ja beides befindet sich auf einer Userform. Beide weitere Fragen beantworte ich mit nein

2 Antworten

In das betreffende Ereignis

ListBox1.Add TextBox1.Text

Ich würde aber vorher noch die Einträge der ListBox durchgehen, ob dieser Eintrag vielleicht schon vorhanden ist.

TygaX 
Fragesteller
 11.11.2022, 14:06

Ne ist er nicht.

0
TygaX 
Fragesteller
 11.11.2022, 14:07

Wenn die Userform sich erst öffnet und ich den Eintrag wie gewünscht hinzufüge, funktioniert ja auch alles. Nur sobald ich die Userform neu aufrufe ist der eigentlich zugefügte Eintrag verschwunden.

0
PWolff  13.11.2022, 22:34
@TygaX

Dazu müsstest du die Einträge in der ListBox entweder in einer der Tabellen der Excel-Mappe oder in einer eigenen Datei speichern und beim neuen Öffnen der UserForm wieder einlesen.

0
ComboBox.AddItem TextBox.Text
TygaX 
Fragesteller
 11.11.2022, 12:21

Ich habe das Listenfeld in Userform_Initialize geschrieben, sodass meine Änderung nicht dauerhaft gespeichert wird. Wie kann ich das ändern?

0
daCypher  14.11.2022, 08:26
@TygaX

Also du willst, dass die Daten irgendwo gespeichert werden? Da gibt es verschiedene Möglichkeiten.

Am Einfachsten dürfte es sein, wenn du für die "RowSource" Eigenschaft des Listenfelds irgendeinen Bereich der Excel-Arbeitsmappe einstellst. Am Besten ein ListObject, bzw. eine Tabelle (nicht verwechseln mit einem Tabellenblatt). Also du markierst die Daten in deiner Excel und drückst Strg+T und dann Ok. Die Daten kannst du dann recht bequem mit ListRows.Add oder ListRows(123).Delete bearbeiten.

Oder du erstellst z.B. eine Datenbankverbindung zu einem SQL-Server und speicherst die Daten da. Oder du erstellst ein FileSystemObject und speicherst die Daten in einer Datei

1