Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kombinationsfeld / Dropdown füllen

Forumthread: Kombinationsfeld / Dropdown füllen

Kombinationsfeld / Dropdown füllen
20.05.2016 10:48:48
Marco
Hallo ich möchte ein Kombinationsfeld (aus der Steuerleistentoolbox) mit Daten aus einem anderen Tabellenblatt füllen und habe dazu das geschrieben:
   Public Sub FormularSteuerelementToolbox_1()
'   Combobox heißt ComboBox1
With ThisWorkbook.Worksheets("Database")
.ComboBox1.AddItem "Spalte A"
End With
End Subpre>
Aber das Kombinationsfeld ist immer leer. Ich habe dem Feld aber das oben genannte Makro  _
zugewiesen. Wo ist denn da der Wurm drin?
Grüße Marco

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kombinationsfeld / Dropdown füllen
20.05.2016 10:50:37
Marco
Ups Fehler ich meine diesen Code:

Public Sub FormularSteuerelementToolbox_1()
'   Combobox heißt ComboBox1
With ThisWorkbook.Worksheets("Database")
.ComboBox1.AddItem "Spalte A"
End With
End Sub

AW: Kombinationsfeld / Dropdown füllen
20.05.2016 10:57:44
ChrisL
Hi Marco
Es wäre jeweils hilfreich, wenn du im Beitrag bleibst. Um eine Frage als offen zu kennzeichnen gibt es das Kontrollkästchen.
https://www.herber.de/forum/messages/1494291.html
Das Makro, welches du einem Formularsteuerelement zuweist wird erst ausgeführt, wenn die Auswahl geändert wird und dient nicht dem Füllen des Kombinationsfeldes. Da müsstest du mit dem "Eingabebereich" unter "Steuerelement formatieren" arbeiten.
Wenn du die ComboBox dynamisch füllen willst, empfehle ich ein ActiveX Steuerelement. Den Code zum Füllen kannst du z.B. in einem Workbook_Open Ereignis unterbringen.
cu
Chris

Anzeige
AW: Kombinationsfeld / Dropdown füllen
20.05.2016 10:58:42
Nepumuk
Hallo,
bei Formularsteuerelementen läuft das anders:
Public Sub Test()
    With Tabelle1.Shapes("Dropdown 1").ControlFormat
        Call .AddItem(Text:="Test")
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: Kombinationsfeld / Dropdown füllen
20.05.2016 11:00:44
Rudi
Hallo,
Ich habe dem Feld aber das oben genannte Makro zugewiesen.
wie das?
Für ActiveX-Steuerelemente kann man Ereignisprozeduren schreiben,
z.B.
Private Sub ComboBox1_Change()
Private Sub ComboBox1_DropButtonClick()

aber keine Makros 'zuweisen'.
Schreib mal genauer oder lade die Datei hoch.
Gruß
Rudi

Anzeige
AW: Kombinationsfeld / Dropdown füllen
20.05.2016 11:12:19
Marco
Danke an alle aber ich glaube ich lade die Datei mal hoch um anhand von dem Beispiel mein Problem besser schildern zu können.
https://www.herber.de/bbs/user/105685.xlsm
Auf dem ersten Tabellenblatt sieht man drei Dropdown Felder. Diese möchte ich genauso füllen wie die beiden anderen Comboboxen die beim betätigen des Button Standortverwaltung erscheinen. Optisch sehen die Dropdown Felder ob auf dem UserForm oder im Tabellenblatt gleich aus aber funktionieren tun sie anscheinend völlig anders.
Grüße Marco

Anzeige
AW: Kombinationsfeld / Dropdown füllen
20.05.2016 11:17:13
ChrisL
Hi Marco
Solche 6 wie uns 5 gibt es keine 4 mal weil wir 3 die 2 Einzigen sind...
Anders formuliert, was kommt in die 3. Combobox?
cu
Chris

AW: Kombinationsfeld / Dropdown füllen
20.05.2016 11:26:58
Marco
In die 3. Combobox kommt noch nichts Chris. Das wollte ich im laufe der Zeit dann einfach ergänzen.

AW: Kombinationsfeld / Dropdown füllen
20.05.2016 13:12:07
ChrisL
Hi Marco
Wie inzwischen schon mehrfach erwähnt, musst du ein ActiveX-Steuerelement verwenden
https://www.herber.de/bbs/user/105690.xlsm
' Diese Arbeitsmappe
Private Sub Workbook_Open()
Call CB1fuellen
End Sub
' Tabelle1
Private Sub ComboBox1_Change()
Call CB2fuellen
End Sub
' Standardmodul
Public zeile As Integer
Public bFuellen As Boolean
Sub Standortverwaltung()
UserForm1.Show
End Sub

Sub CB1fuellen()
Dim iZeile As Long
With Worksheets("Database")
bFuellen = True
Worksheets("Dashboard").ComboBox1.Clear
For iZeile = 5 To .Cells(.Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(.Range("A5:A" & iZeile), .Cells(iZeile, 1)) = 1 Then _
Worksheets("Dashboard").ComboBox1.AddItem .Cells(iZeile, 1)
Next iZeile
bFuellen = False
Worksheets("Dashboard").ComboBox1.ListIndex = 0
End With
End Sub

Sub CB2fuellen()
Dim iZeile As Long
With Worksheets("Database")
If bFuellen Then Exit Sub
Worksheets("Dashboard").ComboBox2.Clear
If Worksheets("Dashboard").ComboBox1 = "" Then Exit Sub
For iZeile = 5 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(iZeile, 1) = Worksheets("Dashboard").ComboBox1 Then _
Worksheets("Dashboard").ComboBox2.AddItem .Cells(iZeile, 2)
Next iZeile
Worksheets("Dashboard").ComboBox2.ListIndex = 0
End With
End Sub

Wenn sich die Database ändert, musst du CB1fuellen neu aufrufen.
cu
Chris

Anzeige
das kann nicht funktionieren
20.05.2016 11:29:20
Rudi
Hallo,
1. das Objekt Database gibt es nicht.
2. die Combobox heißt Dropdown 5.
3. die zugewiesene Prozedur wird bei Formularsteuerelementen nur bei Auswahl eines Eintrags (den es nicht gibt) ausgeführt.
Nimm ActiveX-Steuerelemente.
Gruß
Rudi
;
Anzeige
Anzeige

Infobox / Tutorial

Kombinationsfeld in Excel richtig füllen


Schritt-für-Schritt-Anleitung

Um ein Kombinationsfeld (Dropdown) in Excel zu füllen, kannst du die folgenden Schritte befolgen. Hierbei verwenden wir ein ActiveX-Steuerelement, da es flexibler und einfacher zu handhaben ist als ein Formularsteuerelement.

  1. ActiveX-Kombinationsfeld hinzufügen:

    • Gehe zu Entwicklertools > Einfügen und wähle das Kombinationsfeld (ActiveX).
  2. Kombinationsfeld benennen:

    • Rechtsklicke auf das Kombinationsfeld und wähle Eigenschaften. Ändere den Namen in ComboBox1 (oder einen Namen deiner Wahl).
  3. Code hinzufügen:

    • Klicke mit der rechten Maustaste auf das Tabellenblatt und wähle Code anzeigen.
    • Füge den folgenden VBA-Code hinzu, um das Kombinationsfeld zu füllen:
    Private Sub Workbook_Open()
       Call CB1fuellen
    End Sub
    
    Sub CB1fuellen()
       Dim iZeile As Long
       With Worksheets("Database")
           Worksheets("Dashboard").ComboBox1.Clear
           For iZeile = 5 To .Cells(.Rows.Count, 1).End(xlUp).Row
               Worksheets("Dashboard").ComboBox1.AddItem .Cells(iZeile, 1)
           Next iZeile
       End With
    End Sub
  4. Speichern und Testen:

    • Speichere die Datei als .xlsm und öffne sie erneut, um das Kombinationsfeld mit Daten zu füllen.

Häufige Fehler und Lösungen

  • Kombinationsfeld bleibt leer:

    • Stelle sicher, dass der VBA-Code korrekt im entsprechenden Blatt platziert ist. Der Code muss beim Öffnen der Arbeitsmappe ausgeführt werden.
  • Falscher Bezug auf das Datenblatt:

    • Überprüfe, ob das Arbeitsblatt "Database" existiert und die richtige Struktur hat.
  • ActiveX-Steuerelemente nicht sichtbar:

    • Möglicherweise sind ActiveX-Steuerelemente in deiner Excel-Version deaktiviert. Aktiviere sie in den Excel-Optionen.

Alternative Methoden

Wenn du mit Kombinationsfeldern in Excel arbeitest, gibt es mehrere Möglichkeiten, diese zu füllen:

  1. Formularsteuerelemente:

    • Verwende ein Formularsteuerelement, aber beachte, dass diese nicht dynamisch gefüllt werden können. Du musst die Werte manuell zuweisen oder die Dropdown-Listen über das Steuerelement formatieren füllen.
  2. Datenüberprüfung:

    • Eine einfache Methode ist die Verwendung der Datenüberprüfung, um ein Dropdown-Menü zu erstellen. Gehe zu Daten > Datenüberprüfung und wähle Liste aus.

Praktische Beispiele

Hier sind einige Beispiele, wie du das Kombinationsfeld in Excel effektiv nutzen kannst:

  • Dynamische Dropdown-Listen: Erstelle ein Dropdown, das von anderen Zellen abhängt. Zum Beispiel, wenn ein Wert in ComboBox1 ausgewählt wird, wird ComboBox2 entsprechend gefüllt.

  • Mehrere Dropdowns: Verwende mehrere Kombinationsfelder, um verschiedene Daten zu filtern.

Private Sub ComboBox1_Change()
    Call CB2fuellen
End Sub

Sub CB2fuellen()
    'Code für das Füllen von ComboBox2 basierend auf ComboBox1
End Sub

Tipps für Profis

  • Datenbindung: Nutze das Datenmodell von Excel, um deine Kombinationsfelder direkt mit Tabellen zu verbinden.

  • Ereignisprozeduren: Setze Ereignisprozeduren ein, um auf Benutzerinteraktionen zu reagieren, z.B. beim Ändern des Inhalts in einem Kombinationsfeld.

  • Performance: Vermeide das häufige Löschen und Hinzufügen von Elementen zu Kombinationsfeldern, um die Performance zu verbessern. Fülle das Kombinationsfeld einmal vollständig und aktualisiere es bei Bedarf.


FAQ: Häufige Fragen

1. Wie kann ich ein Kombinationsfeld in Excel füllen?
Verwende VBA, um die Werte zuzuweisen, oder nutze die Datenüberprüfung für einfache Dropdowns.

2. Was ist der Unterschied zwischen einem ActiveX-Kombinationsfeld und einem Formularsteuerelement?
ActiveX-Kombinationsfelder bieten mehr Flexibilität und können dynamisch gefüllt werden, während Formularsteuerelemente statisch sind.

3. Wie kann ich die Werte in einem Kombinationsfeld ändern?
Ändere die Daten in der Quelle (z.B. der Tabelle) und rufe den entsprechenden Füllcode erneut auf, um die Änderungen zu reflektieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige