VBA – Kombinationsfeld
In this Article
- Ein Kombinationsfeld in einem Excel-Arbeitsblatt erstellen
- Befüllen eines Kombinationsfeldes in VBA-Code
- Befüllen eines Kombinationsfeld aus einem Zellenbereich
- Ein ausgewähltes Element eines Kombinationsfeldes in VBA abrufen
- Inhalte eines Kombinationsfeldes löschen
- Verwendung eines Kombinationsfeldes in einem Benutzerformular
In diesem Tutorial zeigen wir Ihnen, wie Sie mit Kombinationsfeldern in VBA arbeiten können.
Kombinationsfelder ermöglichen es dem Benutzer, eine Option aus einer Dropdown-Liste auszuwählen. Kombinationsfelder können in VBA-Benutzerformularen oder in einem Excel-Arbeitsblatt erstellt werden. In diesem Tutorial lernen Sie, wie Sie Kombinationsfelder in VBA und in Excel-Arbeitsblättern erstellen und bearbeiten können.
Wenn Sie lernen möchten, wie Sie ein Listenfeld erstellen, klicken Sie hier: VBA-Listenfeld
Wenn Sie lernen möchten, wie Sie ein Kontrollkästchen erstellen, klicken Sie hier: VBA Kontrollkästchen
Ein Kombinationsfeld in einem Excel-Arbeitsblatt erstellen
Um ein Kombinationsfeld in das Arbeitsblatt einzufügen, müssen Sie auf die Registerkarte Entwicklertools gehen. Klicken Sie auf Einfügen und wählen Sie Kombinationsfeld unter ActiveX-Steuerelemente:
Abbildung 1. Einfügen eines Kombinationsfeldes in das Arbeitsblatt
Wenn Sie das eingefügte Kombinationsfeld auswählen, können Sie auf der Registerkarte Entwicklertools auf Eigenschaften klicken:
Abbildung 2. Eigenschaften eines Kombinationsfeldes ändern
Hier können Sie verschiedene Eigenschaften des Kombinationsfeldes einstellen. Als erstes haben wir das Attribut Name in cmbKombinationsFeld geändert. Jetzt können wir das Kombinationsfeld mit diesem Namen im VBA-Code verwenden.
Befüllen eines Kombinationsfeldes in VBA-Code
Zunächst müssen wir das Kombinationsfeld mit Werten füllen. In den meisten Fällen muss ein Kombinationsfeld befüllt werden, wenn die Arbeitsmappe geöffnet wird. Aus diesem Grund müssen wir einen Code zum Befüllen des Kombinationsfeld in die Prozedur Workbook_Open() des Workbook-Objekts einfügen . Diese Prozedur wird jedes Mal ausgeführt, wenn ein Benutzer die Arbeitsmappe öffnet. Hier ist der Code:
With Tabelle1.cmbKombinationsFeld
.AddItem "John"
.AddItem "Michael"
.AddItem "Jennifer"
.AddItem "Lilly"
.AddItem "Robert"
End With
Wenn Sie auf das Dropdown-Menü klicken, erhalten Sie 5 Namen zur Auswahl (John, Michael, Jennifer, Lilly und Robert):
Abbildung 3. Das Kombinationsfeld in VBA befüllen
Befüllen eines Kombinationsfeld aus einem Zellenbereich
Eine andere Möglichkeit, ein Kombinationsfeld zu befüllen, besteht darin, es dem Benutzer zu überlassen. Ein Kombinationsfeld kann mit einem Zellenbereich verknüpft werden. Bei diesem Ansatz wird jedes Mal, wenn der Benutzer einen neuen Wert in den Zellenbereich eingibt, das Kombinationsfeld mit diesem aktualisiert.
Wenn Sie dies aktivieren möchten, müssen Sie in den Eigenschaften des Kombinationsfeldes das Attribut ListFillRange auf den Zellenbereich (in unserem Fall E2:E5) einstellen:
Abbildung 4. Befüllen des Kombinationsfeldes aus einem Zellenbereich
Wir haben unser Kombinationsfeld mit dem Bereich E2:E5 verknüpft, in den wir die gewünschten Namen (Nathan, Harry, George, Roberta) eintragen. Das Ergebnis besteht darin, dass das Kombinationsfeld jetzt mit diesen Namen belegt ist:
Abbildung 5. Aus einem Zellenbereich befülltes Kombinationsfeld
Ein ausgewähltes Element eines Kombinationsfeldes in VBA abrufen
Der Zweck eines Kombinationsfeldes besteht darin, eine Auswahl des Benutzers zu erhalten. Um diese abzurufen, müssen Sie diesen Code verwenden:
Dim strAusgewaehltesElement As Variant
strAusgewaehltesElement = Tabelle1.cmbKombinationsFeld.Value
Die Auswahl des Benutzers befindet sich im Attribut Value des Objekts Tabelle1.cmbKombinationsFeld. Dieser Wert wird der Variablen strAusgewaehltesElement zugewiesen:
Abbildung 6. Abrufen eines ausgewählten Wertes aus dem Kombinationsfeld in VBA
Wir haben Julia im Kombinationsfeld ausgewählt und die Prozedur ausgeführt. Wie Sie in Abbildung 5 sehen können, lautet der Wert von strAusgewaehltesElement Julia. Also der Wert, den wir ausgewählt haben. Nun können Sie diese Variable im Code weiterverarbeiten.
Inhalte eines Kombinationsfeldes löschen
Wenn Sie die Elemente eines Kombinationsfeldes in VBA löschen möchten, müssen Sie die Clear-Methode des Objekts Tabelle1.cmbKombinationsFeld verwenden. Damit werden alle Elemente aus dem Kombinationsfeld gelöscht. Hier ist der Code:
Tabelle1.cmbKombinationsFeld.Clear
Wenn wir den Code ausführen, erhalten wir das leere Kombinationsfeld:
Abbildung 7. Alle Elemente des Kombinationsfeldes löschen
Verwendung eines Kombinationsfeldes in einem Benutzerformular
Wie wir bereits erwähnt haben, wird das Kombinationsfeld am häufigsten in Benutzerformularen verwendet. Um zu erklären, wie das geht, fügen wir zunächst ein Benutzerformular ein. Klicken Sie im VBA-Editor mit der rechten Maustaste auf den Modulnamen, klicken Sie auf Einfügen und wählen Sie UserForm:
Abbildung 8. Einfügen eines Benutzerformulars
Um die Steuerelemente zum Einfügen anzuzeigen, müssen Sie die Toolsammlung aktivieren. Klicken Sie dazu auf das Symbol Toolsammlung in der Symbolleiste. Daraufhin wird ein Fenster mit allen verfügbaren Steuerelementen angezeigt. Sie können auf Kombinationsfeld klicken, um es im Benutzerformular zu erstellen.
Abbildung 9. Einfügen eines Kombinationsfeldes in das Benutzerformular
Wir werden das Kombinationsfeld cmbKombinationsFeld nennen. Um es mit Werten zu füllen, müssen wir den folgenden Code in die Prozedur Initialize des UserForm-Objekts einfügen:
Private Sub UserForm_Initialize()
With BenutzerFormular1.cmbKombinationsFeld
.AddItem "John"
.AddItem "Michael"
.AddItem "Jennifer"
.AddItem "Lilly"
.AddItem "Robert"
End With
End Sub
Dieser Code wird jedes Mal ausgelöst, wenn ein Benutzer das Benutzerformular ausführt und das UserForm mit diesen 5 Namen befüllt:
Abbildung 10. Das Kombinationsfeld mit Werten im Benutzerformular
Wenn Sie den ausgewählten Wert aus dem Kombinationsfeld abrufen möchten, müssen Sie die gleiche Logik wie beim Kombinationsfeld in einem Arbeitsblatt verwenden. Diese wird weiter oben in diesem Artikel erläutert.
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!