Rückkehr in VBA-Code-Beispiele

VBA – Kombinationsfeld

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:

vba kombinationsfeld einfuegen

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:

vba kombinationsfeld eigenschaften

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):

vba kombinationsfeld befuellen

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:

kombinationsfeld aus zellenbereich befuellen

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: vba befuelltes kombinationsfeld

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:

vba kombinationsfeld auswahl abrufen

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:

vba kombinationsfeld inhalt loeschen

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:

vba benutzerformular einfuegen

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.

kombinationsfeld in benutzerformular einfuegen

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:

befuelltes kombinationsfeld in benutzerformular

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! vba save as


Learn More!