Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1468to1472
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

ListBox mehrspaltig und Namen

ListBox mehrspaltig und Namen
25.01.2016 20:08:33
Tom
Guten Abend,
bin neu hier und gespannt auf die fachliche Unterstützung sowie nette Konversationen ;-)
Viele Beiträge zu diesem Thema, aber ich tu mich bei meiner persönlichen Lösung schwer. Ich habe die Bereiche/Spalten, die in die ListBox hineingezogen werden sollen mit Namen versehen (da sich die Zeilenanzahl usw. ändern können). Bei einer einzeiligen Lösung ist das auch kein Thema, z. B.:
ListBox1.RowSource = "Lohn01"
(Lohn01 ist also als Beispiel A1:A15
Ich bräuchte aber 3 Spalten: "Lohn01" + "L01_2015" + "L01_2016" UND die sind nicht zusammenhängend, also Spalten A C D (also A1:A15, dann C1:C15 und D1:D15).
Am besten gefiele mir diese Lösung, die ich in etwa so gefunden hatte und versucht hab sie auf meine Aufgabe umzuschreiben. Aber irgendwas funzt da nicht und ich erkenne es nicht. Wahrscheinlich verstehe ich AddItem und List nicht richtig, vielleicht kann mich einer aufklären ;-)
with listbox1
.additem "Lohn01"
.list = "L01_2015"
.list = "L01_2016"
end with
Tausend Dank schon mal für Eure Bemühungen!
Gruß
Tom

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox mehrspaltig und Namen
25.01.2016 20:43:00
Crazy
Hi
ich würde es so lösen
Private Sub UserForm_Initialize()
Dim lngLetzte As Long
Dim lngAnzahl As Long
Dim lngListboxZeilen As Long
Dim intSpalten As Integer
lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row
With ListBox1
.Clear
.ColumnCount = 4
.ColumnWidths = "50;0;50;50"
For lngAnzahl = 1 To lngLetzte
.AddItem Cells(lngAnzahl, 1).Value
lngListboxZeilen = .ListCount
For intSpalten = 1 To 3
.List(lngListboxZeilen - 1, intSpalten) = Cells(lngAnzahl, intSpalten + 1)
Next
Next
End With
End Sub

es werden zwar alle 4 Spalten in die Listbox geladen
aber die zweite Spalte mit den Einträgen aus Spalte "B" ist auf Weite 0 eingestellt
in dieser Variante darf die Listbox aber keine Rowsource haben
MfG Tom
btw: für Mitleser http://www.office-loesung.de/p/viewtopic.php?f=166&t=710854

Anzeige
AW: ListBox mehrspaltig und Namen
25.01.2016 21:09:13
Werner
Hallo Tom,
hab was gefunden, das du mal versuchen kannst
Dim urng As Range
With Worksheets("Tabelle1") 'an deine Tabelle anpassen
Set urng = Union("Bereichsname1", "Bereichsname2", "Bereichsname3") 'an deine Namen anpassen
End With
With UserForm1 'an deine Userform anpassen
.ListBox1.RowSource = urng.Address 'an deine Listbox anpassen
End With
Das Beispiel war für unterschiedliche Zellbereich, ob das auch mit Bereichsnamen funktioniert kann ich dir nicht sagen. Ob die Bereichsnamen in Gänsefüsschen müssen oder nicht müsstest du auch ausprobieren.
Keine Garantie, habe es nicht getestet.
Gruß Werner

Anzeige
AW: ListBox mehrspaltig und Namen
26.01.2016 08:11:25
Tom
Guten Morgen und tausend Dank Euch beiden!!!
Erst erschien mir die Lösung von Werner sympathischer, weil ich immer bemüht bin alles mit wenigen Codezeilen zu lösen. Leider haut bereits der erste Teil, also Set urng = Union usw. nicht hin. Mit "" Fehlermeldung, ohne eine andere. Sehr schade :-(
Dann aber sprang mir eine geniale Zeilenidee von Crazy Tom ins Auge, einfach mal die zweite, nicht benötigte Spalte, mit der Breite 0 ansetzen! Cool! Habe nun allen vier Spalten (bzw. dem benötigten Bereich A1:D15) einen neuen Namen vergeben und auch eine kurze Lösung hinbekommen:
With ListBox1
' .Clear 'hierbei kommt ein Fehler, ich lasse es daher weg
.ColumnCount = 4
.ColumnWidths = "400;0;50;50"
.RowSource = "Lohn_bis_2016"
End With
Also Problem gelöst, besten Dank noch mal!!!
Gruß
Tom
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige