Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ListBox füllen in Abhängigkeit einer ComboBox

ListBox füllen in Abhängigkeit einer ComboBox
26.10.2007 10:20:46
edie
Hallo Zusammen,
wie kann ich in einer UserForm eine ListBox in Abhängigkeit
einer ComboBox-Auswahl füllen lassen und zwar die Spalte B
Spalte C , Spalte E und Spalte H?
Im nachfolgenden Code wird nur die Spalte B und Spalte C
gefüllt. Die Spalte E und H werden nicht eingelesen.
Habe mit arr(i, 3) = Cells(iRow, 5)
arr(i, 4) = Cells(iRow, 8)
versucht bekomme eine Fehlermeldung: "Laufzeitfehlet '9'
Index außerhalb des gültigen Bereichs"
Hier der Code:

Private Sub cboBeispiel_Change()
Dim iRow As Integer
Dim i As Integer
lstGesamt.Clear
lstGesamt.ColumnCount = 2
iRow = WorksheetFunction.Match(cboBeispiel.Value, Columns(1), 0)
ReDim arr(WorksheetFunction.CountIf(Columns(1), cboBeispiel) - 1, 2)
i = 0
Do While Cells(iRow, 1).Value = cboBeispiel.Value
arr(i, 0) = Cells(iRow, 2)
arr(i, 1) = Cells(iRow, 3)
arr(i, 3) = Cells(iRow, 5)
arr(i, 4) = Cells(iRow, 8)
i = i + 1
iRow = iRow + 1
Loop
lstGesamt.List = arr
lstGesamt.ListIndex = 0
End Sub


Hat jemand eine Idee wonwegen "Index außerhalb des gültigen Bereichs"?
Für die Hilfe wäre ich sehr dankbar.
Grüße

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
lstGesamt.ColumnCount = 2 bedeutet : nur 2 Spalten
26.10.2007 10:34:00
NoNet
Hallo edie,
ohne es getestet zu haben : Versuche mal lstGesamt.ColumnCount = 4 !
Gruß, NoNet

AW: lstGesamt.ColumnCount = 2 bedeutet : nur 2 Spalten
26.10.2007 11:02:45
edie
Hallo NoNet,
leider nicht, die Prozedeur stoppt bei arr(i, 3) = Cells(iRow, 5)
Vielen Dank, noch eine Idee?
Grüße

Lass Dir doch mal die GRösse des ARRAYs anzeigen
26.10.2007 11:28:04
NoNet
Hallo edie,
die Fehlermeldung ist schon aussagekräftig :
arr(i, 3) = Cells(iRow, 5)
Da kann entweder nur iRow zu gross sein (kann ausgeschlossen werden, da arr(i, 1) = Cells(iRow, 3) funktioniert !) oder i ist zu gross !
Prüfe doch mal die Grösse des ARRAYs :
MsgBox UBound(arr(), 2) 'prüft, die OBERGRENZE der zweiten Dimension des ARRAYs
Wenn hierbei ein Wert <3 angezeigt wird, dann musst Du das ARRAY entsprechend grösser dimensionieren !
Gruß, NoNet
PS: Das sehe ich ja erst JETZT :

ReDim arr(WorksheetFunction.CountIf(Columns(1), cboBeispiel) - 1, 2)


Und bei dieser 2 Wunderst Du dich, dass 3 nicht mehr funktioniert ? ;-)) *fg*

Anzeige
AW: Besten Dank, jetz funktioniert es
26.10.2007 11:43:00
edie
Hallo NoNet,
tausend man Danke!
In der Tat und so gehts:

Private Sub cboBeispiel_Change()
Dim iRow As Integer
Dim i As Integer
lstGesamt.Clear
lstGesamt.ColumnCount = 10
iRow = WorksheetFunction.Match(cboBeispiel.Value, Columns(1), 0)
ReDim arr(WorksheetFunction.CountIf(Columns(1), cboBeispiel) - 1, 4)
'MsgBox UBound(arr(), 2)
i = 0
On Error Resume Next
Do While Cells(iRow, 1).Value = cboBeispiel.Value
arr(i, 0) = Cells(iRow, 2)
arr(i, 1) = Cells(iRow, 3)
arr(i, 2) = Cells(iRow, 5)
arr(i, 3) = Cells(iRow, 6)
arr(i, 4) = Cells(iRow, 8)
i = i + 1
iRow = iRow + 1
Loop
lstGesamt.List = arr
lstGesamt.ListIndex = 0
End Sub


Einen schönen Tag noch.
Grüße

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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