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

Listbox einlesen

Forumthread: Listbox einlesen

Listbox einlesen
25.02.2006 18:44:26
Walter
Hallo Guten Abend,
wie kann ich in eine Listbox1 aus der aktiven Sheet den Bereich einlesen,
spalten 3-10 + Spalte14 + 17 + 21.
Es soll immer der komplette Bereich, das ende der Tabelle ist immer durch die Nummerierung in der Spalte 1 zu erreichen.
Ich wechsel schon mal die Sheet, deshalb muß auch der Bereich eingelsen werden können. Die Spalten etc. alles gleich.
Für eine Hilfe bin ich dankbar,
gruß Walter
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox einlesen
25.02.2006 19:10:19
Olaf
Hi,
in einer ungebundenen Listbox können max. 10 Spalten angezeigt werden.
Du müßtest die Spalten in einem anderen Blatt zusammenfassen und dann mit Listfillrange/RowSource füllen.
mfg Olaf
AW: Listbox einlesen
25.02.2006 19:21:31
Walter
Hallo Olaf,
ich weiß garnicht was Du meinst.
Ich brauch allerdings 11 Spalten. Kannst Du mir mal ein Beispiel machen, habe versucht
mit: ListBox1.RowSource = "Tabelle1!C4:J" & Sheets("tabelle1").Range("J65536").End(xlUp).Row
in der UF Private Sub UserForm_Initialize()
einzubinden, leider ohne Erfolg.
Gruß Walter
Anzeige
AW: Listbox einlesen
25.02.2006 19:32:04
Olaf
Hi,
RowSource geht nur für einen zusammenhängenden Zellbereich, C bis J sind erst
8 Spalten und da ist der Code
ListBox1.RowSource = "Tabelle1!C4:J" & Sheets("tabelle1").Range("J65536").End(xlUp).Row
schon ok.
Die anderen 3 Spalten bekommst du so aber nicht in die Listbox.
mfg Olaf
Anzeige
AW: Dicke Problem mit Sheet
25.02.2006 20:03:45
Walter
Hallo Olaf,
Danke. Habe folgendes zusammengebastelt:
With ListBox1
.ColumnCount = 11
.RowSource = "C4:M400"
'Text,Kenn/Center/ Typ4/ Auftr/Kennz/Text/Erstz/ K /L / M
.ColumnWidths = "3,5cm;0,8cm;0,8cm;4cm;2,5cm;3cm;2,2cm;2,2cm;2cm;1,5cm;1,5cm;"
End With
Ich habe 11 Spalten sichtbar, habe dies in die UF eingesetzt, die Zahlen werden angezeigt, jedoch muß anstatt durchgehend bis "SpalteM" bis Spalte "E" haben und dann
Spalte 14+17+21 dazu, also die Menge geht.
Wie gesagt der Bereich muß von Zeile 4 anfangen und soweit bis die letzte Nr. der Spalte "A".
mfg Walter
Anzeige
AW: Dicke Problem mit Sheet
25.02.2006 20:15:20
Olaf
Hi,
entweder du liest alle Spalten ein und stellst die ColumnWidth der nicht gewünschten Spalten auf 0 (Null) ein, oder du kopierst die Spalten in ein anderes Blatt.
Nochmal, RowSource kann nur ein zusammenhängender Zellbereich sein.
mfg Olaf
warum RowSource ?
25.02.2006 20:22:48
Peter
Servus Olaf,
aber warum soll er unbedingt RowSource nehmen ?
Alles in ein Array einlesen und mit List auf einmal befüllen.
Z.B. so.


Option Explicit
Private Sub UserForm_Activate()
Dim myarr() As Integer  'evtl. anders Dimensionieren, _
                         kommt auf Inhalt der Zellen an !

Dim intZ As Integer
Dim myrng As Range, rng As Range
With Sheets("Tabelle1")
    Set myrng = Union(Range("A1:E1"), Range("N1:N1"), Range("Q1:Q1") _
        , Range("U1:U1"))
    ReDim myarr(0, 0 To 8)
    For Each rng In .Range(myrng.Address)
        myarr(0, intZ) = rng
        intZ = intZ + 1
    Next
End With
With Me.ListBox1
    .ColumnCount = 8
    .List = myarr
End With
End Sub


MfG Peter
Anzeige
AW: warum RowSource ?
25.02.2006 20:45:50
Olaf
Hi,
hättest seinen Beitrag lesen sollen, er braucht 11 Spalten und das geht nur
bei gebundener Listbox.
mfg Olaf
AW: warum RowSource ?
25.02.2006 21:07:27
Peter
Servus,
versteh wirklich nicht was du meinst, und was ist mit dem Bsp.
https://www.herber.de/bbs/user/31423.xls
MfG Peter
Anzeige
AW: warum RowSource ?
25.02.2006 22:14:56
Walter
Hallo Peter,
habe abgeändert:
Dim myarr() As Integer 'evtl. anders Dimensionieren, _
kommt auf Inhalt der Zellen an !
Dim intZ As Integer
Dim myrng As Range, rng As Range
With Sheets("Tabelle1")
Set myrng = Union(Range("A4:E100"), Range("N4:N100"), Range("Q4:Q100") _
, Range("U4:U100"))
ReDim myarr(0, 0 To 8)
For Each rng In .Range(myrng.Address)
myarr(0, intZ) = rng
intZ = intZ + 1
Next
End With
With Me.ListBox1
.ColumnCount = 8
.List = myarr
End With
leider wird nur eine Zeile angezeigt und das alles "0" , je Spalte.
mfg walter
Anzeige
AW: warum RowSource ?
26.02.2006 14:12:45
Peter
Servus Walter,
mach mal ein Bsp. mit Beschreibung was wohin muss.
MfG Peter
Habe die Lösung selbst gefunden, bin Stolz
26.02.2006 14:47:39
Walter
Hallo Peter und alle anderen,
habe die Lösung auch mit "RowSource" gefunden.
So:
Dim z
Range("B3").Select
z = Range("a3").End(xlDown).Row
With ListBox1
.ColumnCount = 21
.RowSource = "C4:U" & z
.ColumnWidths = "3cm;0,8cm;0,8cm;3,8cm;2,5cm;2,3cm;3cm;2cm;0cm;0cm;0cm;2cm;0cm;0cm;2cm;0cm;0cm;0cm;3cm;"
End With
Wenn ich die UF geöffnet habe und auch filter, werden mir nur die Zeilen angezeigt
die vorhanden sind.Es funktioniert einwandfrei,
mfg Walter
Anzeige
Danke o.t.
25.02.2006 20:23:25
Walter
Hallo Olaf,
bleibt mir wohl nichts anderes überig, werde ich dann auf "0" einstellen,
gute Nacht,
mfg Walter
;

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