Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1084to1088
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
ComboBox befüllen - ListFillRange
Gordon
Moin moin,
mal eine Frage zu der Combobox. Und zwar versuche ich diese gerade über die Eigenschaftem der Box zu befüllen. Nun stehen die Daten für die Box in den Felden C4 bis F4. Wenn ich nun die Range C4:F4 im Feld ListFillRange angebe, kann man in der ComboBox nur den Eintrag von C4 auswählen. Der Rest erscheint gar nicht. Geht es nur eine solche Box so zu befüllen, wenn die Werte untereinander und nicht nebeneinander stehen?
Gruß
Gordon
AW: ComboBox befüllen - ListFillRange
28.06.2009 17:35:46
Hajo_Zi
Hallo Gordon,
Du hast die Anzahl der Spalten auch geändert auf 4

AW: ComboBox befüllen - ListFillRange
28.06.2009 17:42:09
Gordon
Hallo Hajo,
verstehe leider gerade dein Posting nicht. Ist das eine Frage?
Bisher dachte ich immer man müsse unter ListFillRange die Zellenangeben die als Einträge in Frage kommen. Das ging sonst auch immer gut, aber da standen auch immer die Daten untereinander.
AW: ComboBox befüllen - ListFillRange
28.06.2009 17:45:29
Hajo_Zi
Hallo Gordon,
das war eine Frage?
Wenn die Daten nur in einer Spalte stehen brauchts Du die Anzahl der angezeigten Spalten ncht veränder, Standard ist 1. S0o wie ich das gelesen habe möchtest Du aber 4 Spalten anzeigen, also muss ColumnsCount geändert werden.
Gruß Hajo
Anzeige
AW: ComboBox befüllen - ListFillRange
28.06.2009 17:50:22
Gordon
Ok,
aber wenn ich dort nun 4 Spalten angebe, stehen die Sachen in der Liste immer noch nicht zur Auswahl untereinander drin, sondern alle 4 nebeneiner in einem Eintrag. Zu mal auch der Inhalt von B2 jetzt auch mit in der Box steht. Bin etwas verwirrt (also noch mehr als bei meiner grundsätzlichen Verwirrtheit).
AW: ComboBox befüllen - ListFillRange
28.06.2009 17:52:10
Hajo_Zi
Halo Gordon,
Das ist doch klar. in der Tabelle stehen Sie ja auch nebeneinander.
Gruß Hajo
AW: ComboBox befüllen - ListFillRange
28.06.2009 17:55:28
Gordon
Ok,
aber gibt es eine Möglichkeit die 4 Einträge in einer ComboBox untereinander stehen zu haben? Oder müssen diese 4 Einträge aus den vier Zellen untereinanderstehen, damit sie auch untereinander in der ComboBox als einzelne Einträge realisiert werden?
Gruß
Gordon
Anzeige
AW: ComboBox befüllen - ListFillRange
28.06.2009 17:58:38
hary
Hallo Gordon
versuch mal.

Private Sub UserForm_Initialize()
Dim i As Long
Dim Name
For i = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
If Cells(1, i)  "" Then ' hier zeile 1
Name = Cells(1, i)
ComboBox1.AddItem (Name)
Me.ComboBox1.ListIndex = 0
End If
Next
End Sub


Gruss hary

AW: ComboBox befüllen - ListFillRange
28.06.2009 18:02:57
Hajo_Zi
Hallo Harry,
ist der Code nicht aufwendig.
Warum muss bei jedem Eintrag der Listindex gesetzt werden?

Option Explicit
Private Sub UserForm_Initialize()
Dim i As Long
For i = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
If Cells(1, i)  "" Then ' hier zeile 1
ComboBox1.AddItem Cells(1, i)
End If
Next i
ComboBox1.ListIndex = 0
End Sub


Gruß Hajo

Anzeige
ListIndex sollte auch ans Ende ;-) owt.
28.06.2009 18:10:05
hary
.
AW: code aendern
28.06.2009 18:03:13
hary
Hallo Gordon
nochmal ich. Hier fuer deine 4 Spalten

Private Sub UserForm_Initialize()
Dim i As Long
Dim Name
For i = 3 To 6
If Cells(4, i)  "" Then ' hier zeile 1
Name = Cells(4, i)
ComboBox1.AddItem (Name)
Me.ComboBox1.ListIndex = 0
End If
Next
End Sub


Gruss Hary

AW: code aendern
28.06.2009 18:05:00
Gordon
Danke euch für die Hilfe!
Hatte eigentlich eine Lösung ohne VBA-Code gesucht, aber anscheinend gibt es die nicht wirklich. Danke für die Mühe! :-)
Lieben Gruß
Gordon
Doch das geht - mit einer Hilfsspalte !
28.06.2009 19:14:43
Matthias
Hallo
Markiere z.B B5:B8 komplett mit der Maus
schreibe nun =MTRANS(C4:F4)
Wichtig ist, das Du genau so viele Zellen in der Spalte markierst wie Du sie in Deiner Zeile stehen hast
Die Formel als Matrix abschließen mit Strg+Shift+Enter
Das erzeugt die geschweiften Klammern
Jetzt kannst Du in der Combobox .ListFillRange auf B5:B8 setzen
und kannst die Hilfsspalte ausblenden.
Immer wenn Du nun einen Wert in C4:F4 änderst, wird auch die Zelle im Array(B5:B8) geändert.
zum besseren Verständnis hier eine Beispielmappe:
https://www.herber.de/bbs/user/62804.xls
Gruß Matthias
Anzeige
AW: Einfache VBA-Methode mit Transpose
28.06.2009 18:23:20
Daniel
Hi
die ListFillRange-Eigenschaft funktioniert nur, wenn die Daten untereinander stehen.
das liegt daran, daß eine Listbox nicht nur eine eindimensionale Liste sein kann, sondern auch ein zweidimensionales Feld.
Das wird z.B. dann benutzt, wenn der Listeneintrag, den der Anwender sieht, nicht das eigentliche Ergebnis der Listbox sein soll.
Beispiel: du benötigst die Kundennummer, aber in der Listbox wird sinnigerweise der Kundenname angezeigt, weil man den sich besser merken kann.
aber zum Thema, wenn die Daten in der Tabelle nebeneinander stehen und trotzdem in der Listbox zur auswahl angezeigt werden sollen, dann kann die Listbox über diesen Code befüllt werden:

Private Sub UserForm_Initialize()
ComboBox1.List = WorksheetFunction.Transpose(Range("C4:F4").Value)
End Sub


Gruß, Daniel

Anzeige
AW: ComboBox befüllen - ListFillRange
28.06.2009 19:09:23
Gerd
Hallo Gordon,
natürlich geht das auch mit Listfill-Range.
Nur musst Du diesen auf einen senkrechten Spaltenbereich setzen, also auf einen anderen
Bereich, den Du per Array-Formel z.B. so füllen kannst.
{=MTRANS(Tabelle2!C4:F4)}
Gruß Gerd
AW: ComboBox befüllen - ListFillRange
28.06.2009 19:48:08
Gordon
Danke euch allen.
Hab es nun auch so gelöst, dass ich die vier Zellen an anderer Stelle nochmal untereinander geschrieben und sie von da aus in die ComboBox fülle. Das ging ohne Probleme. Also danke nochmal.
Gruß
Gordon
AW: ComboBox befüllen - ListFillRange
28.06.2009 22:33:35
Luschi
Hallo Gordon,
das finde ich nun wieder nicht gut. Zwecks performater Datenhaltung ist diese Lösung nicht akzeptabel.
Warum hast Du nicht mal den Lösungsvorschlag von Daniel ausprobiert.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: ComboBox befüllen - ListFillRange
28.06.2009 22:34:51
Klaus-Dieter
Hallo Gordon,
habe den Beitrag gerade erst gefunden. Ich würde das so lösen:
ComboBox1.List = Application.WorksheetFunction.Transpose(Range("C4:F4").Value)
Viele Grüße Klaus-Dieter

Online-Excel

142 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige