Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1012to1016
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

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?

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige