Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable Combobox

Forumthread: Variable Combobox

Variable Combobox
07.10.2008 13:27:21
Klaus
Hallo zusammen
Ich habe in einer Tabelle (Tabelle1) eine Combobox integriert. Aus einer anderen Tabelle (Tabelle2) möchte ich Daten in die Combobox laden und zwar aus dem Bereich K3:O... Die Tabelle2 sollte in der Länge nach unten hin variabel sein.
Kann mir jemand helfen?
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrspaltig ?
07.10.2008 14:13:11
Chris
Servus,
scheint ja mehrspaltig zu sein.
Sind die Spalten fest?
als Ansatz:

Sub ComboBox_fuellen()
Dim lngLetzte
lngLetzte = Cells(Rows.Count, 15).End(xlUp).Row
For i = 3 To lngLetzte
With Sheets("Tabelle1").ComboBox1
.ColumnCount = 5
.AddItem Sheets("Tabelle2").Cells(i, 11)
z = .ListCount - 1
.List(z, 1) = Sheets("Tabelle2").Cells(i, 12)
.List(z, 2) = Sheets("Tabelle2").Cells(i, 13)
.List(z, 3) = Sheets("Tabelle2").Cells(i, 14)
.List(z, 4) = Sheets("Tabelle2").Cells(i, 15)
End With
Next i
End Sub


Gruß
Chris

Anzeige
AW: Nachtrag
07.10.2008 14:18:00
Chris
Servus,
kleine Verbesserung:

Sub ComboBox_fuellen()


Sub ComboBox_fuellen()
Dim lngLetzte
lngLetzte = Cells(Rows.Count, 15).End(xlUp).Row
Sheets("Tabelle1").ComboBox1.Clear
For i = 3 To lngLetzte
With Sheets("Tabelle1").ComboBox1
.AddItem Sheets("Tabelle2").Cells(i, 11)
z = .ListCount - 1
.List(z, 1) = Sheets("Tabelle2").Cells(i, 12)
.List(z, 2) = Sheets("Tabelle2").Cells(i, 13)
.List(z, 3) = Sheets("Tabelle2").Cells(i, 14)
.List(z, 4) = Sheets("Tabelle2").Cells(i, 15)
End With
Next i
End Sub


Gruß
Chris

Anzeige
AW: Variable Combobox
07.10.2008 14:16:48
Peter
Hallo Klaus,
das könnte z. B. so funktionieren:
Option Explicit

Private Sub ComboBox1_DropButtonClick()
Dim WkSh      As Worksheet
Dim myArr()   As Variant
Dim lZeile    As Long
Dim lLetzte   As Long
Set WkSh = Worksheets("Tabelle2") ' ggf. den Tabellen-Namen anpassen
With WkSh
lLetzte = .Cells(.Rows.Count, 11).End(xlUp).Row
ReDim myArr(lLetzte - 2, 5)
For lZeile = 3 To lLetzte
myArr(lZeile - 3, 0) = WkSh.Range("K" & lZeile).Value
myArr(lZeile - 3, 1) = WkSh.Range("L" & lZeile).Value
myArr(lZeile - 3, 2) = WkSh.Range("M" & lZeile).Value
myArr(lZeile - 3, 3) = WkSh.Range("N" & lZeile).Value
myArr(lZeile - 3, 4) = WkSh.Range("O" & lZeile).Value
Next lZeile
End With
With Me.ComboBox1
.ColumnCount = UBound(myArr)
.List = myArr
End With
'If Me.ComboBox1.ListCount > 0 Then Me.ComboBox1.ListIndex = 0
End Sub


Gruß Peter

Anzeige
AW: Variable Combobox
07.10.2008 14:56:39
Klaus
Danke vielmals für die Hilfe, hat geklappt
Lösung ohne VBA
07.10.2008 14:59:21
Jürgen
Hallo Klaus,
das geht auch ohne VBA, indem man für die Quelle der Combobox einen dynamischen Bereichsnamen verwendet. Dazu gehst Du auf "Einfügen - Namen - Definieren", gibst eine Bereichsnamen ein und dann in "Bezieht sich auf" eine Formel nach folgendem Muster:
=Bereich.Verschieben(Tabelle2!$K$3;0;0;Anzahl2(Tabelle2!$K$3:$K$65536;5)
Nun einfach noch den so erzeugten Bereichsnamen in die Eigenschaft "RowSource" der Combobox eintragen - fertig!
Voraussetzung allerdings: Die Werte in Spalte K sind lückenlos gefüllt, sonst eine der anderen Spalten für Anzahl2 nehmen.
Gruß, Jürgen
Anzeige
;

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