/ / Excel VBA-abhängige Kombinationsfelder

Excel VBA-abhängige Kombinationsfelder

Unten sehen wir uns ein Programm in Excel VBA was ein Benutzerformular erstellt, das enthält abhängige Kombinationsfelder. Die Benutzerform, die wir erstellen werden, sieht folgendermaßen aus:

Der Benutzer wählt Tiere aus einer Dropdown-Liste aus. Folglich kann der Benutzer ein Tier aus einer zweiten Dropdown-Liste auswählen.

Abhängige Kombinationsfelder in Excel VBA

Der Benutzer wählt Sport aus einer Dropdown-Liste. Als Ergebnis kann der Benutzer einen Sport aus einer zweiten Dropdown-Liste auswählen.

Abhängige Kombinationsfelder in Excel VBA

Führen Sie die folgenden Schritte aus, um dieses Benutzerformular zu erstellen.

1. Öffnen Sie den Visual Basic-Editor. Wenn der Projekt-Explorer nicht sichtbar ist, klicken Sie auf Ansicht, Projekt-Explorer.

2. Klicken Sie auf Einfügen, Benutzerformular. Wenn die Toolbox nicht automatisch angezeigt wird, klicken Sie auf Ansicht, Toolbox. Ihr Bildschirm sollte wie folgt eingerichtet sein.

Benutzerbildschirm Setup in Excel VBA

3. Fügen Sie die Kombinationsfelder (erstes links, zweites rechts) und Befehlsschaltfläche hinzu. Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem zuvor gezeigten Bild des Benutzerformulars übereinstimmen. Erstellen Sie beispielsweise ein Kombinationsfeldsteuerelement, indem Sie in der Toolbox auf ComboBox klicken. Als Nächstes können Sie ein Kombinationsfeld auf dem Benutzerformular ziehen.

4. Sie können die Namen und die Beschriftungen der Steuerelemente ändern. Namen werden im Excel-VBA-Code verwendet. Untertitel sind diejenigen, die auf Ihrem Bildschirm erscheinen. Es empfiehlt sich, die Namen der Steuerelemente zu ändern. Dies ist jedoch nicht erforderlich, da in diesem Beispiel nur wenige Steuerelemente vorhanden sind. Um die Beschriftung des Benutzerformulars und der Befehlsschaltfläche zu ändern, klicken Sie auf Ansicht, Eigenschaftenfenster, und klicken Sie auf jedes Steuerelement.

5. Um das Benutzerformular anzuzeigen, platzieren Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt und fügen Sie die folgende Codezeile hinzu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Wir werden jetzt die Sub UserForm_Initialize erstellen. Wenn Sie die Show-Methode für das Benutzerformular verwenden, wird dieses Sub-Objekt automatisch ausgeführt.

6. Öffnen Sie den Visual Basic-Editor.

7. Klicken Sie im Projektexplorer mit der rechten Maustaste auf UserForm1, und klicken Sie dann auf Code anzeigen.

8. Wählen Sie Benutzerform in der linken Dropdown-Liste. Wählen Sie Initialisieren aus der rechten Dropdown-Liste.

9. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub UserForm_Initialize()

With ComboBox1
    .AddItem "Animals"
    .AddItem "Sports"
    .AddItem "Food"
End With

End Sub

Erläuterung: Diese Codezeilen füllen das erste Kombinationsfeld.

Wir haben jetzt den ersten Teil des Benutzerformulars erstellt. Obwohl es bereits ordentlich aussieht, wird nichts passieren, wenn wir ein Element aus dem ersten Kombinationsfeld auswählen.

10. Doppelklicken Sie im Projektexplorer auf UserForm1.

11. Doppelklicken Sie auf das erste Kombinationsfeld.

12. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub ComboBox1_Change()

Dim index As Integer
index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index
    Case Is = 0
        With ComboBox2
            .AddItem "Dog"
            .AddItem "Cat"
            .AddItem "Horse"
        End With
    Case Is = 1
        With ComboBox2
            .AddItem "Tennis"
            .AddItem "Swimming"
            .AddItem "Basketball"
        End With
    Case Is = 2
        With ComboBox2
            .AddItem "Pancakes"
            .AddItem "Pizza"
            .AddItem "Chinese"
        End With
End Select

End Sub

Erläuterung: Excel VBA verwendet den Wert des Variablenindex, um jede nachfolgende Case-Anweisung zu testen, um festzustellen, mit welchen Elementen das zweite Kombinationsfeld gefüllt werden sollte. Gehen Sie durch unser Select Case-Programm, um mehr über die Select Case-Struktur zu erfahren.

13. Doppelklicken Sie auf die Schaltfläche Importieren.

14. Fügen Sie die folgende Codezeile hinzu:

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

Ergebnis:

Abhängige Kombinationsfelder in Excel VBA

Lesen Sie auch: