Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
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 verhält sich seltsam

ListBox verhält sich seltsam
27.01.2015 14:43:12
Erik
Liebe Gemeinde,
ich habe diesmal kein Problem, aber ein merkwürdiges Phänomen im Verhalten einer Listbox (wieder-)entdeckt.
Ausgangssituation
Ich erstelle ein UserForm und darauf eine ListBox und eine Combobox. Die Combobox enthält eine Auflistung von Tabellenblättern. Wenn ich einen Eintrag wähle, wird der Inhalt der Tabelle in die Listbox eingelesen (Der Einfachheit halber ein Rangebereich mit 9x9 Zeilen und Spalten).
Der Code

Dim varRange As Variant
varRange = Tabelle.Range("A1:I9")
With ListBox1
.ColumnCount = 9
.List = varRange
End With

Das Problem
Wenn ich nun diese ListBox nachträglich mit einem anderen Array mittels Schleifen befüllen will, dass auch noch eine andere Dimension hat, dann erscheint der Laufzeitfehler 380 (auch wenn .ColumnCount entsprechend angepasst und die ListBox vorher mit .Clear bereinigt wird).
Lese ich hingegen das Array varRange ebenfalls über eine Schleife ein, funktioniert es ohne Probleme.
Ich habe den Code stark verkürzt, da ich gerade an einem größeren Projekt arbeite.
Vielleicht findet sich ein Profi, der es mir erklären kann. :)
Grüße
Erik

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

Betreff
Datum
Anwender
Anzeige
AW: ListBox verhält sich seltsam
27.01.2015 16:20:34
Daniel
Hi
"mit Schleife befüllen" heitß wahrscheinlich mit .AddItem.
bei .AddItem ist die Anzahl der Spalten auf 10 (glaube ich) begrenzt.
dh wenn bei dir die 2. Dimension des Arrays grösser als 10 Elemente ist, kannst du dieses Array nicht per Scheife mit .AddItem in die Listbox schreiben sondern nur das ganze Array mit .List = Array zuweisen.
Gruß Daniel

AW: ListBox verhält sich seltsam
27.01.2015 22:05:43
Erik
Hallo Daniel,
danke dir, diese Limitation kenne ich schon. Leider kann ich das als Ursache ausschließen. Das Array hatte 8 Spalten, per .additem und Schleife wollte ich ein Array mit 7 Spalten einlesen.
Ich werde es ggf. nochmal versuchen zu reproduzieren und als Arbeitsmappe hochzuladen.
Gruß
Erik

Anzeige
AW: ListBox verhält sich seltsam
28.01.2015 09:00:06
fcs
Hallo Erik,
meines Wissens tritt der Fehler 380
in einem Userform-Code nur auf, wenn bei der AddItem-Methode der Spalten-Index für die Listitems nicht im Bereich von 0 bis 9 (ganzzahlig) liegt. Der Wert von ColumnCount spielt dabei keine Rolle - das List-Array hat per Microsoft-Festlegung immer 10 Spalten und nicht benutzte Spalten enthalten Null-Werte.
Nachfolgend ein Beispiel in dem Tabelleneinträge aus verschiedenen Spalten nach einer Wert-Prüfung in eine Listbox eingelesen werden.
Wichtig ist hier, dass der Zähler für die Listbox-Spalten für jede Tabellen-Zeile auf einen Startwert gesetzt werden muss.
Gruß
Franz
                With ListBox1
'Prüfen, ob Listbox mit Datenquelle verbunden ist, wenn ja, dann Quelle  _
entfernen
If .RowSource  "" Then
.RowSource = ""
.ColumnHeads = False
End If
.Clear
.ColumnCount = 5
For Zeile = 1 To Tabelle.Cells(Tabelle.Rows.Count, 1).End(xlUp).Row
If Tabelle.Cells(Zeile, 3) > 5 Then
.AddItem Tabelle.Cells(Zeile, 1).Text
intCol = 0 'Wenn diese Zeile fehlt oder intCol > 9 , dann Fehler  _
380
For Spalte = 2 To 15
Select Case Spalte
Case 2 To 4, 7, 9, 10, 12 To 13
intCol = intCol + 1
.List(.ListCount - 1, intCol) = _
Tabelle.Cells(Zeile, Spalte).Value
End Select
Next
End If
Next Zeile
End With

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige