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

Wieviel spalten in einer Listbox? | Herbers Excel-Forum

Wieviel spalten in einer Listbox?
13.01.2010 10:45:28
ray

Hallo,
obwohl ich die Eigenschaft Columcount meiner Listbox auf 32 gesetzt habe, werden mir nur 20 Spalten angezeigt.
Woran kann das liegen?
Der Code zum füllen der ListBox:

Private Sub UserForm_Initialize()
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
Dim wbk As Workbook
Dim wks As Worksheet
Application.ScreenUpdating = False
Set wbk = Workbooks.Open("F:\daten\VeListe.xls")
Application.ScreenUpdating = False
Set wks = wbk.Sheets(2)
wks.Select
With ListBox1
.List = Range("A1").CurrentRegion.Value
If .ListCount > 0 Then .ListIndex = 0
End With
wbk.Close SAVECHANGES:=False
Set wbk = Nothing
Set wks = Nothing
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
Sheets("leer").Select
Application.ScreenUpdating = True
End Sub

Viele Grüße aus Hamburg
Ray

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wie groß ist Deine Liste??? oT
13.01.2010 10:54:23
Björn B.
35 Spalten mit 640 Zeilen. oT
13.01.2010 10:58:05
ray
pt
überprüf mal "CurrentRegion"
13.01.2010 11:03:17
Björn B.
Hallo,
lass Dir mal CurrentRegion ausgeben, vielleicht stimmt da was nicht...
msgbox Range("A1").CurrentRegion.Address
bei 35 Spalten und 640 Zeilen sollte als Ergebnis "$A$1:$AI$640" rauskommen.
Da bei dir nur 20 angezeigt werden, vermute ich, dass "$A$1:$T$640" da steht.
Sonst weiß ich es nicht. Bei mir funktioniert es, hab es mit 50 Spalten getestet, werden alle angezeigt.
Gruß
Björn B.
AW: überprüf mal "CurrentRegion"
13.01.2010 11:22:29
ray
liefert $A$1:$S$619
619 stimmt. S ist aber zu wenig. Muss in allen Spalten etwas stehen?
Gruß Ray
AW: überprüf mal "CurrentRegion"
13.01.2010 11:37:14
Björn B.
Hallo,
Muss in allen Spalten etwas stehen?

ja, so ist es. Woran soll Excel denn erkennen, dass ne leere Spalte dazugehört?
Du kannst das ganze fix eintragen, also über die Adresse der Range direkt oder du ermittelst Dir anhand irgendeiner Logik deine letzte Spalte (wenn es variabel sein soll).
Über Suchbegriffe oder über letzte befüllte Spalte oder...
Gruß
Björn B.
Anzeige
kleiner Tipp am Rande..
13.01.2010 11:52:02
Björn B.
"dilettantisch" schreibt man übrigens so.
Fremdworte sollte man nur benutzen, wenn man sie auch versteht und schreiben kann ;-)
Gruß
Björn B.
war Absicht, aber
13.01.2010 11:58:13
ray
...Ironie versteht nciht jeder. werd das korrigieren, bevor man mich für noch blöder hält...
Gruß Ray
na dann..
13.01.2010 12:00:30
Björn B.
... entschuldige. War nicht böse gemeint.
Klappt es jetzt eigentlich mit der Listbox?
Gruß
Björn B.
AW: na dann..
13.01.2010 12:09:27
ray
Kein Grund für ne Entschuldigung, war ein netter hinweis. An der Listbox ist Hajo dran... das wird schon.
Gruß Ray
Schon mal die ColumnWidht-Einstellung geprüft?
13.01.2010 23:45:20
Daniel
Hi.
vielleicht werden die fehlenden Spalten ja auch über die .ColumnWidth-Einstellungen der Listbox ausgeblendet.
Was steht denn in dieser Eigenschft.
Gruß. Daniel
Anzeige
AW: Wieviel spalten in einer Listbox?
13.01.2010 11:05:07
Hajo_Zi
Hallo Ray,
ich weise den Bereich meist immer so zu.
Private Sub UserForm_Activate()
Dim rngSource As Object
Dim intColums As Integer
ListBox1.Tag = 1
Set rngSource = Range("A1").CurrentRegion
' Die oberste Zeile enthaelt die Feldnamen.
' Diese brauchen wir nur dort um die Columnheader darzustellen,
' aber nicht fuer die Listboxeintraege.
' Also den Datenbereich um die Erste Zeile reduzieren.
Set rngSource = rngSource.Offset(1, 0).Resize(rngSource.Rows.Count - 1, rngSource.Columns. _
Count)
' Spaltenanzahl des Datenbereichs ermitteln.
intColums = rngSource.Columns.Count
With Me.ListBox1
.ListStyle = fmListStyleOption      ' Auswahlfeld zu Beginn der Zeile
' von Peter Haserodt
' nur eine Auswahl, bei .ListStyle = fmListStyleOption Optionbutton in Listbox
'.MultiSelect = fmMultiSelectSingle
' mehrere können ausgewählt werden,.ListStyle = fmListStyleOption checkboxen in Listbo
.MultiSelect = fmMultiSelectMulti
'.MultiSelect = fmMultiSelectExtended
' gibt eigentlich nur bei Liststyle Plain einen Sinn, funzt aber auch anders.
' Dies bewirkt, dass mit Shift und Strg Tasten  eine Mehrfachauswahl getroffen
' werden kann
.ColumnCount = intColums
.ColumnHeads = True
.RowSource = rngSource.Address
End With
Set rngSource = Nothing
ListBox1.Tag = ""
End Sub

Die meisten sehen Deine Datei nicht.

Anzeige
AW: Wieviel spalten in einer Listbox?
13.01.2010 11:35:03
ray
Danke Hajo, aber ich bin als Anfänger nicht klug genug, um Deinen code bei mir einzubauen.
und was Du damit ''Die meisten sehen Deine Datei nicht.'' meinst, weiß ich auch nicht.
Trotzdem Danke.
AW: Wieviel spalten in einer Listbox?
13.01.2010 11:47:32
Hajo_Zi
Hallo Ray,
ich hätte den Code 1 zu 1 übernommen und nur den Namen der Listbox angepastr.
Ich lehne es ab über das Internet auf fremde Rechner zu schauen.
Gruß Hajo
AW: Wieviel spalten in einer Listbox?
13.01.2010 11:53:03
ray
ich hätte den Code 1 zu 1 übernommen und nur den Namen der Listbox angepastr.
Und wie kommt der Code dann an die Quellenangabe (Welche Datei, wo)
Ich lehne es ab über das Internet auf fremde Rechner zu schauen.
Ich weiß schon wieder nicht, was Du damit meinst....
Anzeige
AW: Wieviel spalten in einer Listbox?
13.01.2010 11:58:09
Hajo_Zi
Hallo ray,
ich bin davon ausgegangen das die Datei auf Deine Rechner liegt. Das ist wohl nicht so, dann teile die Adresse mitr wo die Datei liegt.
Der code geht von der aktuelle Tbelle aus, falls andere Datei muß Datei und Tabelle nachgeschrieben werden im Code.
Gruß Hajo
AW: Wieviel spalten in einer Listbox?
13.01.2010 12:08:13
ray
Danke Hajo,
ich probiere jetzt schon 2 Stunden herum und komme nicht voran...
Die Quelle: Set wbk = Workbooks.Open("F:\daten\VeListe.xls")
Dieser Code funzt mit Einschränkung:
Private Sub UserForm_Initialize()
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
Dim wbk As Workbook
Dim wks As Worksheet
Application.ScreenUpdating = False
Set wbk = Workbooks.Open("F:\daten\VeListe.xls")
'Application.ScreenUpdating = False
Set wks = wbk.Sheets(3)
wks.Select
With ListBox1
.List = Range("A1").CurrentRegion.Value
If .ListCount > 0 Then .ListIndex = 0
'MsgBox Range("A1").CurrentRegion.Address
End With
wbk.Close SAVECHANGES:=False
Set wbk = Nothing
Set wks = Nothing
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
Sheets("leer").Select
Application.ScreenUpdating = True
End Sub
Die Einschränkung ist, dass nur 20 Spalten angezeigt werden, obwohl es 30 sind und columcount auf 30 eingestellt ist.
Ich hatte die Idee, ob es daran liegt, dass zwischendurch leere Spalten sind, aber dass kann nicht sein, da z. B. Spalte 18 leer ist aber mir Spalte 19 wieder angezeigt wird.
Kann ich im obigen Code nicht einfach (wie?) sagen, nimmt Bereich von A1:Z620 ?
Danke für Deine Zeit und Grüße in die Heimat. In der Demminer Gegend war ja SchneeUnter...
Gruß RAy
Anzeige
Haken vergessen...
13.01.2010 12:10:00
ray
h
AW: Wieviel spalten in einer Listbox?
13.01.2010 12:11:17
Hajo_Zi
Hallo Ray,
was mir auffällt das set ist auf eine Datei und keine Tabelle.
Gruß Hajo
AW: Wieviel spalten in einer Listbox?
13.01.2010 12:21:20
ray
ja, aber weiter unten steht
Set wks = wbk.Sheets(3)
wks.Select
AW: Wieviel spalten in einer Listbox?
13.01.2010 12:32:25
Hajo_Zi
Hallo Ray,
auf select kann verzichte werden.
Hinweise zu select usw.
bei auslkesen der Daten mußt Du nur wks. davor schreiben, das müßte dann gehen.
Gruß Hajo
Anzeige
Gelöst. Vielen Dank Hajo.
13.01.2010 12:34:27
ray
closed
so klappt das
13.01.2010 12:31:51
Rudi Maintaire
Hallo,
Private Sub UserForm_Initialize()
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
Dim wbk As Workbook
Dim wks As Worksheet
Dim arr
Application.ScreenUpdating = False
Set wbk = Workbooks.Open("F:\daten\VeListe.xls")
Set wks = wbk.Sheets(2)
Application.ScreenUpdating = False
arr = wks.Range("A1").CurrentRegion
With ListBox1
.ColumnCount = UBound(arr, 2)
.List = arr
If .ListCount > 0 Then .ListIndex = 0
End With
wbk.Close SAVECHANGES:=False
Set wbk = Nothing
Set wks = Nothing
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
Sheets("leer").Select
Application.ScreenUpdating = True
End Sub

Gruß
Rudi
Anzeige
Nur @Rudi
13.01.2010 12:36:09
ray
Hi Rudi,
worin liegt der Vorteil zu meinem kürzerem code?
Gruß Ray
nirgends
13.01.2010 12:44:34
Rudi Maintaire
Hallo,
ich machs immer über ein Array.
Deine Variante geht bei mir (XL10) aber auch. Hab gerade 256 Spalten in der LB erzeugt.
  With ListBox1
.ColumnCount = wks.Range("A1").CurrentRegion.Columns.Count
.List = wks.Range("A1").CurrentRegion.Value
If .ListCount > 0 Then .ListIndex = 0
End With
Gruß
Rudi
Danke Rudi mGruß oT
13.01.2010 12:55:15
ray
gruß

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige