Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
920to924
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
920to924
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige