Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige